Introduction: LISER Department UD

Here are preliminary results of the bibliometric mapping of the 2022 Luxembourg research evaluation. Its purpose is:

The method for the research-field-mapping can be reiviewed here:

Rakas, M., & Hain, D. S. (2019). The state of innovation system research: What happens beneath the surface?. Research Policy, 48(9), 103787.

Seed Articles

The seed articles deemed representative for the active areas of research in the institution, and include authors affiliated with the institution. They can be selected in three ways:

  1. Via bibliographic clustering of the institutions publications and selection of most central articles per cluster (only clsuters where n >= 0.05N). Selection can be found at:https://github.com/daniel-hain/biblio_lux_2022/blob/master/output/seed/scopus_liser_ud_seed.csv
  2. MAnual selection of relevant publications.
  3. A combination of 1. and 2.

The present analysis is based on the following seed articles:

AU PY TI JI
WÓJCIK D;URBAN M;DÖRRY S 2022 LUXEMBOURG AND IRELAND IN GLOBAL FINANCIAL NETWORKS: ANALYSING THE CHANGING STRUCTURE OF EUROPEAN... TRANS. INST. BR. GEOGR.
GLUMAC B;DES ROSIERS F 2020 PRACTICE BRIEFING – AUTOMATED VALUATION MODELS (AVMS): THEIR ROLE, THEIR ADVANTAGES AND THEIR LIM... J. PROP. INVEST. FINAN.
BURZYNSKI M;DEUSTER C;DOCQU... 2020 GEOGRAPHY OF SKILLS AND GLOBAL INEQUALITY J. DEV. ECON.
DECOVILLE A;DURAND F 2019 EXPLORING CROSS-BORDER INTEGRATION IN EUROPE: HOW DO POPULATIONS CROSS BORDERS AND PERCEIVE THEIR... EUR. URBAN REG. STUD.
DE VOS J;SCHWANEN T;VAN ACK... 2019 DO SATISFYING WALKING AND CYCLING TRIPS RESULT IN MORE FUTURE TRIPS WITH ACTIVE TRAVEL MODES? AN ... INTL. J. SUSTAINABLE TRANSP.
TAYYEBI A;TAYYEBI AH;PEKIN ... 2018 MODELING HISTORICAL LAND USE CHANGES AT A REGIONAL SCALE: APPLYING QUANTITY AND LOCATIONAL ERROR ... J. ENVIRON. INF.
LAMOUR C 2017 THE NEO-WESTPHALIAN PUBLIC SPHERE OF LUXEMBOURG: THE REBORDERING OF A MEDIATED STATE DEMOCRACY IN... TIJDSCHR. ECON. SOC. GEOGR.
CARLIN A;PERCHOUX C;PUGGINA... 2017 A LIFE COURSE EXAMINATION OF THE PHYSICAL ENVIRONMENTAL DETERMINANTS OF PHYSICAL ACTIVITY BEHAVIO... PLOS ONE

Topic modelling

Here, we report the results of a LDA topic-modelling (basically, clustering on words) on all title+abstract texts.

Topics by topwords

Note: While this static vies is helpful, I recommend using the interactive LDAVis version to be found under https://daniel-hain.github.io/biblio_lux_2022/output/topic_modelling/LDAviz_liser_ud.rds/index.html#topic=1&lambda=0.60&term=. For functionality and usage, see technical description in the next tab.

Topics over time

`summarise()` has grouped output by 'PY'. You can override using the `.groups` argument.

Technical Description

LDA Topic Modelling

Topic modeling is a type of statistical modeling for discovering the abstract “topics” that occur in a collection of documents. Latent Dirichlet Allocation (LDA) is an example of topic model and is used to classify text in a document to a particular topic.

LDA is a generative probabilistic model that assumes each topic is a mixture over an underlying set of words, and each document is a mixture of over a set of topic probabilities. It builds a topic per document model and words per topic model, modeled as Dirichlet distributions.

LDAVis

LDAvis is a web-based interactive visualisation of topics estimated using LDA. It provides a global view of the topics (and how they differ from each other), while at the same time allowing for a deep inspection of the terms most highly associated with each individual topic. The package extracts information from a fitted LDA topic model to inform an interactive web-based visualization. The visualisation has two basic pieces.

The left panel visualise the topics as circles in the two-dimensional plane whose centres are determined by computing the Jensen–Shannon divergence between topics, and then by using multidimensional scaling to project the inter-topic distances onto two dimensions. Each topic’s overall prevalence is encoded using the areas of the circles.

The right panel depicts a horizontal bar chart whose bars represent the individual terms that are the most useful for interpreting the currently selected topic on the left. A pair of overlaid bars represent both the corpus-wide frequency of a given term as well as the topic-specific frequency of the term.

The \(\lambda\) slider allows to rank the terms according to term relevance. By default, the terms of a topic are ranked in decreasing order according their topic-specific probability ( \(\lambda\) = 1 ). Moving the slider allows to adjust the rank of terms based on much discriminatory (or “relevant”) are for the specific topic. The suggested optimal value of \(\lambda\) is 0.6.

Knowledge Bases: Co-Citation network analysis

Note: This analysis refers the co-citation analysis, where the cited references and not the original publications are the unit of analysis. See tab Technical descriptionfor additional explanations

Knowledge Bases summary

In order to partition networks into components or clusters, we deploy a community detection technique based on the Lovain Algorithm (Blondel et al., 2008). The Lovain Algorithm is a heuristic method that attempts to optimize the modularity of communities within a network by maximizing within- and minimizing between-community connectivity. We identify the following communities = knowledge bases.

com name dgr_int dgr
Knowledge Base 1: KB 1 (n = 1943, density =1.98)
1 JANSSEN I. LEBLANC A.G. SYSTEMATIC REVIEW OF THE HEALTH BENEFITS OF PHYSICAL ACTIVITY AND FITNESS IN SCHOOL-AGED CHILDREN AND YOUTH (2010) 3129 3144
1 SAELENS B.E. HANDY S.L. BUILT ENVIRONMENT CORRELATES OF WALKING: A REVIEW (2008) 2198 2770
1 HALLAL P.C. ANDERSEN L.B. BULL F.C. GUTHOLD R. HASKELL W. EKELUND U. GLOBAL PHYSICAL ACTIVITY LEVELS: SURVEILLANCE PROGRESS PITFALLS AND PROSPECTS ... 2074 2097
1 SALLIS J.F. CERVERO R.B. ASCHER W. HENDERSON K.A. KRAFT M.K. KERR J. AN ECOLOGICAL APPROACH TO CREATING ACTIVE LIVING COMMUNITIES (2006) 2058 2113
1 SAELENS B.E. SALLIS J.F. FRANK L.D. ENVIRONMENTAL CORRELATES OF WALKING AND CYCLING: FINDINGS FROM THE TRANSPORTATION URBAN DESIGN AND PLANNING LIT... 1577 2124
1 MCCORMACK G.R. SHIELL A. IN SEARCH OF CAUSALITY: A SYSTEMATIC REVIEW OF THE RELATIONSHIP BETWEEN THE BUILT ENVIRONMENT AND PHYSICAL ACTIVITY AMONG ... 1372 1477
1 SALLIS J.F. PROCHASKA J.J. TAYLOR W.C. A REVIEW OF CORRELATES OF PHYSICAL ACTIVITY OF CHILDREN AND ADOLESCENTS (2000) 1289 1289
1 SAELENS B.E. SALLIS J.F. BLACK J.B. CHEN D. NEIGHBORHOOD-BASED DIFFERENCES IN PHYSICAL ACTIVITY: AN ENVIRONMENT SCALE EVALUATION (2003) 907 1004
1 EVENSON K.R. CATELLIER D.J. GILL K. ONDRAK K.S. MCMURRAY R.G. CALIBRATION OF TWO OBJECTIVE MEASURES OF PHYSICAL ACTIVITY FOR CHILDREN (2008) 838 838
1 DING D. SALLIS J.F. KERR J. LEE S. ROSENBERG D.E. NEIGHBORHOOD ENVIRONMENT AND PHYSICAL ACTIVITY AMONG YOUTH: A REVIEW (2011) 778 781
Knowledge Base 2: KB 2 (n = 1173, density =6.15)
2 CERVERO R. KOCKELMAN K. TRAVEL DEMAND AND THE 3DS: DENSITY DIVERSITY AND DESIGN (1997) 3634 5330
2 EWING R. CERVERO R. TRAVEL AND THE BUILT ENVIRONMENT: A META-ANALYSIS (2010) 2739 3756
2 MOKHTARIAN P.L. CAO X. EXAMINING THE IMPACTS OF RESIDENTIAL SELF-SELECTION ON TRAVEL BEHAVIOR: A FOCUS ON METHODOLOGIES (2008) 2330 2699
2 HANDY S. CAO X. MOKHTARIAN P. CORRELATION OR CAUSALITY BETWEEN THE BUILT ENVIRONMENT AND TRAVEL BEHAVIOR? EVIDENCE FROM NORTHERN CALIFORNIA (2005) 1885 2188
2 EWING R. CERVERO R. TRAVEL AND THE BUILT ENVIRONMENT (2010) 1813 2437
2 EWING R. CERVERO R. TRAVEL AND THE BUILT ENVIRONMENT: A SYNTHESIS (2001) 1794 2268
2 CAO X. MOKHTARIAN P.L. HANDY S.L. EXAMINING THE IMPACTS OF RESIDENTIAL SELF-SELECTION ON TRAVEL BEHAVIOUR: A FOCUS ON EMPIRICAL FINDINGS (2009) 1618 2149
2 BHAT C.R. GUO J.Y. A COMPREHENSIVE ANALYSIS OF BUILT ENVIRONMENT CHARACTERISTICS ON HOUSEHOLD RESIDENTIAL CHOICE AND AUTO OWNERSHIP LEVELS (2007) 1545 1590
2 BAGLEY M.N. MOKHTARIAN P.L. THE IMPACT OF RESIDENTIAL NEIGHBORHOOD TYPE ON TRAVEL BEHAVIOR: A STRUCTURAL EQUATIONS MODELING APPROACH (2002) 1366 1711
2 VAN ACKER V. WITLOX F. CAR OWNERSHIP AS A MEDIATING VARIABLE IN CAR TRAVEL BEHAVIOUR RESEARCH USING A STRUCTURAL EQUATION MODELLING APPROACH TO IDE... 1140 1182
Knowledge Base 3: KB 3 (n = 1059, density =4.45)
3 SOLOW R.M. A CONTRIBUTION TO THE THEORY OF ECONOMIC GROWTH (1956) 1504 1509
3 LUCAS R.E. ON THE MECHANICS OF ECONOMIC DEVELOPMENT (1988) 1345 1361
3 ROMER P.M. ENDOGENOUS TECHNOLOGICAL CHANGE (1990) 988 991
3 MANKIW N.G. ROMER D. WEIL D.N. A CONTRIBUTION TO THE EMPIRICS OF ECONOMIC GROWTH (1992) 896 896
3 HALL R.E. JONES C.I. WHY DO SOME COUNTRIES PRODUCE SO MUCH MORE OUTPUT PER WORKER THAN OTHERS? (1999) 800 800
3 BARRO R.J. ECONOMIC GROWTH IN A CROSS SECTION OF COUNTRIES (1991) 765 765
3 ROMER P.M. INCREASING RETURNS AND LONG-RUN GROWTH (1986) 711 714
3 GALOR O. ZEIRA J. INCOME DISTRIBUTION AND MACROECONOMICS (1993) 618 627
3 BLUNDELL R. BOND S. INITIAL CONDITIONS AND MOMENT RESTRICTIONS IN DYNAMIC PANEL DATA MODELS (1998) 578 578
3 GALOR O. (2011) 570 570
Knowledge Base 4: KB 4 (n = 937, density =5.06)
4 WU F. CALIBRATION OF STOCHASTIC CELLULAR AUTOMATA: THE APPLICATION TO RURAL-URBAN LAND CONVERSIONS (2002) 1238 1238
4 PIJANOWSKI B.C. BROWN D.G. SHELLITO B.A. MANIK G.A. USING NEURAL NETWORKS AND GIS TO FORECAST LAND USE CHANGES: A LAND TRANSFORMATION MODEL (2002) 1041 1041
4 CLARKE K.C. HOPPEN S. GAYDOS L. A SELF-MODIFYING CELLULAR AUTOMATON MODEL OF HISTORICAL URBANIZATION IN THE SAN FRANCISCO BAY AREA (1997) 1035 1038
4 CLARKE K.C. GAYDOS L.J. LOOSE-COUPLING A CELLULAR AUTOMATON MODEL AND GIS: LONG-TERM URBAN GROWTH PREDICTION FOR SAN FRANCISCO AND WASHINGTON/BALTI... 890 890
4 SILVA E.A. CLARKE K.C. CALIBRATION OF THE SLEUTH URBAN GROWTH MODEL FOR LISBON AND PORTO PORTUGAL (2002) 744 744
4 WHITE R. ENGELEN G. CELLULAR AUTOMATA AND FRACTAL URBAN FORM: A CELLULAR MODELLING APPROACH TO THE EVOLUTION OF URBAN LAND-USE PATTERNS (1993) 737 737
4 TAYYEBI A. PIJANOWSKI B.C. MODELING MULTIPLE LAND USE CHANGES USING ANN CART AND MARS: COMPARING TRADEOFFS IN GOODNESS OF FIT AND EXPLANATORY POWER... 702 705
4 YANG Q. LI X. SHI X. CELLULAR AUTOMATA FOR SIMULATING LAND USE CHANGES BASED ON SUPPORT VECTOR MACHINES (2008) 688 688
4 WU F. WEBSTER C.J. SIMULATION OF LAND DEVELOPMENT THROUGH THE INTEGRATION OF CELLULAR AUTOMATA AND MULTICRITERIA EVALUATION (1998) 664 664
4 PONTIUS R.G. MILLONES M. DEATH TO KAPPA: BIRTH OF QUANTITY DISAGREEMENT AND ALLOCATION DISAGREEMENT FOR ACCURACY ASSESSMENT (2011) 604 604
Knowledge Base 5: KB 5 (n = 746, density =4.4)
5 LANGLEY P. (2008) 2597 2670
5 MARTIN R. (2002) 1011 1021
5 FRENCH S. LEYSHON A. WAINWRIGHT T. FINANCIALIZING SPACE SPACING FINANCIALIZATION (2011) 394 401
5 VAN DER ZWAN N. MAKING SENSE OF FINANCIALIZATION (2014) 390 397
5 HARVEY D. (2005) 352 373
5 CHRISTOPHERS B. THE LIMITS TO FINANCIALIZATION (2015) 325 325
5 AALBERS M.B. THE FINANCIALIZATION OF HOME AND THE MORTGAGE MARKET CRISIS (2008) 281 281
5 FINLAYSON A. FINANCIALISATION FINANCIAL LITERACY AND ASSET-BASED WELFARE (2009) 257 257
5 HARVEY D. (1982) 232 241
5 PIKE A. POLLARD J. ECONOMIC GEOGRAPHIES OF FINANCIALIZATION (2010) 229 244
Knowledge Base 6: KB 6 (n = 679, density =15.77)
6 OLSSON L.E. GÄRLING T. ETTEMA D. FRIMAN M. FUJII S. HAPPINESS AND SATISFACTION WITH WORK COMMUTE (2013) 2176 2327
6 DE VOS J. SCHWANEN T. VAN ACKER V. WITLOX F. TRAVEL AND SUBJECTIVE WELL-BEING: A FOCUS ON FINDINGS METHODS AND FUTURE RESEARCH NEEDS (2013) 2137 2312
6 ETTEMA D. GÄRLING T. ERIKSSON L. FRIMAN M. OLSSON L.E. FUJII S. SATISFACTION WITH TRAVEL AND SUBJECTIVE WELL-BEING: DEVELOPMENT AND TEST OF A MEASU... 2074 2194
6 ST-LOUIS E. MANAUGH K. VAN LIEROP D. EL-GENEIDY A. THE HAPPY COMMUTER: A COMPARISON OF COMMUTER SATISFACTION ACROSS MODES (2014) 2068 2229
6 DE VOS J. MOKHTARIAN P.L. SCHWANEN T. VAN ACKER V. WITLOX F. TRAVEL MODE CHOICE AND TRAVEL SATISFACTION: BRIDGING THE GAP BETWEEN DECISION UTILITY ... 1794 2086
6 ETTEMA D. GÄRLING T. OLSSON L.E. FRIMAN M. OUT-OF-HOME ACTIVITIES DAILY TRAVEL AND SUBJECTIVE WELL-BEING (2010) 1772 1863
6 YE R. TITHERIDGE H. SATISFACTION WITH THE COMMUTE: THE ROLE OF TRAVEL MODE CHOICE BUILT ENVIRONMENT AND ATTITUDES (2017) 1604 1804
6 MORRIS E.A. GUERRA E. MOOD AND MODE: DOES HOW WE TRAVEL AFFECT HOW WE FEEL? (2015) 1412 1489
6 FRIMAN M. FUJII S. ETTEMA D. GÄRLING T. OLSSON L.E. PSYCHOMETRIC ANALYSIS OF THE SATISFACTION WITH TRAVEL SCALE (2013) 1410 1521
6 ETTEMA D. FRIMAN M. GÄRLING T. OLSSON L.E. FUJII S. HOW IN-VEHICLE ACTIVITIES AFFECT WORK COMMUTERS’ SATISFACTION WITH PUBLIC TRANSPORT (2012) 1046 1097
Knowledge Base 7: KB 7 (n = 623, density =5.5)
7 SASSEN S. (1991) 965 1033
7 FRIEDMANN J. THE WORLD CITY HYPOTHESIS (1986) 797 803
7 CASTELLS M. (1996) 728 749
7 TAYLOR P.J. SPECIFICATION OF THE WORLD CITY NETWORK (2001) 453 453
7 SASSEN S. (2001) 450 465
7 ALDERSON A.S. BECKFIELD J. POWER AND POSITION IN THE WORLD CITY SYSTEM (2004) 429 429
7 TAYLOR P.J. DERUDDER B. (2016) 410 413
7 ROBINSON J. GLOBAL AND WORLD CITIES: A VIEW FROM OFF THE MAP (2002) 388 388
7 BOURDIEU P. (1984) 361 375
7 BASSENS D. VAN MEETEREN M. WORLD CITIES UNDER CONDITIONS OF FINANCIALIZED GLOBALIZATION: TOWARDS AN AUGMENTED WORLD CITY HYPOTHESIS (2015) 353 364

Development of Knowledge Bases

Technical description

In a co-cittion network, the strength of the relationship between a reference pair \(m\) and \(n\) (\(s_{m,n}^{coc}\)) is expressed by the number of publications \(C\) which are jointly citing reference \(m\) and \(n\).

\[s_{m,n}^{coc} = \sum_i c_{i,m} c_{i,n}\]

The intuition here is that references which are frequently cited together are likely to share commonalities in theory, topic, methodology, or context. It can be interpreted as a measure of similarity as evaluated by other researchers that decide to jointly cite both references. Because the publication process is time-consuming, co-citation is a backward-looking measure, which is appropriate to map the relationship between core literature of a field.

Research Areas: Bibliographic coupling analysis

Research Areas main summary

This is arguably the more interesting part. Here, we identify the literature’s current knowledge frontier by carrying out a bibliographic coupling analysis of the publications in our corpus. This measure uses bibliographical information of publications to establish a similarity relationship between them. Again, method details to be found in the tab Technical description. As you will see, we identify the main research area, but also a set of adjacent research areas with some theoretical/methodological/application overlap.

To identify communities in the field’s knowledge frontier (labeled research areas) we again use the Lovain Algorithm (Blondel et al., 2008). We identify the following communities = research areas.

com_name AU PY TI dgr_int TC TC_year
Research Area 1: RA 1 (n = 1023, density =0.15)
RA 1 DING D;LAWSON KD;KOLBE... 2016 THE ECONOMIC BURDEN OF PHYSICAL INACTIVITY: A GLOBAL ANALYSIS OF MAJOR NON-COMMUNICABLE DISEASES 1.9205808 930 155.000000
RA 1 GUTHOLD R;STEVENS GA;R... 2020 GLOBAL TRENDS IN INSUFFICIENT PHYSICAL ACTIVITY AMONG ADOLESCENTS: A POOLED ANALYSIS OF 298 POPULATION-BASED SURVEYS WITH ... 1.5989659 722 361.000000
RA 1 LAIRD Y;FAWKNER S;KELL... 2016 THE ROLE OF SOCIAL SUPPORT ON PHYSICAL ACTIVITY BEHAVIOUR IN ADOLESCENT GIRLS: A SYSTEMATIC REVIEW AND META-ANALYSIS 6.0366588 101 16.833333
RA 1 CHOI J;LEE M;LEE J-K;K... 2017 CORRELATES ASSOCIATED WITH PARTICIPATION IN PHYSICAL ACTIVITY AMONG ADULTS: A SYSTEMATIC REVIEW OF REVIEWS AND UPDATE 4.7099456 128 25.600000
RA 1 GILES-CORTI B;VERNEZ-M... 2016 CITY PLANNING AND POPULATION HEALTH: A GLOBAL CHALLENGE 0.9096207 516 86.000000
RA 1 TWOHIG-BENNETT C;JONES A 2018 THE HEALTH BENEFITS OF THE GREAT OUTDOORS: A SYSTEMATIC REVIEW AND META-ANALYSIS OF GREENSPACE EXPOSURE AND HEALTH OUTCOMES 0.9963458 469 117.250000
RA 1 SALLIS JF;CERIN E;CONW... 2016 PHYSICAL ACTIVITY IN RELATION TO URBAN ENVIRONMENTS IN 14 CITIES WORLDWIDE: A CROSS-SECTIONAL STUDY 0.7541768 599 99.833333
RA 1 CARLIN A;PERCHOUX C;PU... 2017 A LIFE COURSE EXAMINATION OF THE PHYSICAL ENVIRONMENTAL DETERMINANTS OF PHYSICAL ACTIVITY BEHAVIOUR: A “DETERMINANTS OF DI... 7.2052758 60 12.000000
RA 1 LU C;STOLK RP;SAUER PJ... 2017 FACTORS OF PHYSICAL ACTIVITY AMONG CHINESE CHILDREN AND ADOLESCENTS: A SYSTEMATIC REVIEW 6.0564292 71 14.200000
RA 1 CORDER K;SHARP SJ;ATKI... 2016 AGE-RELATED PATTERNS OF VIGOROUS-INTENSITY PHYSICAL ACTIVITY IN YOUTH: THE INTERNATIONAL CHILDREN'S ACCELEROMETRY DATABASE 6.2001282 65 10.833333
Research Area 2: RA 2 (n = 883, density =0.17)
RA 2 ACEMOGLU D;RESTREPO P 2018 THE RACE BETWEEN MAN AND MACHINE: IMPLICATIONS OF TECHNOLOGY FOR GROWTH, FACTOR SHARES, AND EMPLOYMENT 3.6819655 313 78.250000
RA 2 BHATTACHARYA M;AWAWORY... 2017 THE DYNAMIC IMPACT OF RENEWABLE ENERGY AND INSTITUTIONS ON ECONOMIC OUTPUT AND CO2 EMISSIONS ACROSS REGIONS 1.8245676 272 54.400000
RA 2 TEIXEIRA AAC;QUEIRÓS ASS 2016 ECONOMIC GROWTH, HUMAN CAPITAL AND STRUCTURAL CHANGE: A DYNAMIC PANEL DATA ANALYSIS 2.9968680 160 26.666667
RA 2 JONES CI 2016 THE FACTS OF ECONOMIC GROWTH 4.5621442 100 16.666667
RA 2 DIEBOLT C;HIPPE R 2019 THE LONG-RUN IMPACT OF HUMAN CAPITAL ON INNOVATION AND ECONOMIC DEVELOPMENT IN THE REGIONS OF EUROPE 6.0033353 67 22.333333
RA 2 BEINE M;BERTOLI S;FERN... 2016 A PRACTITIONERS' GUIDE TO GRAVITY MODELS OF INTERNATIONAL MIGRATION 2.8258685 135 22.500000
RA 2 DIAMOND R 2016 THE DETERMINANTS AND WELFARE IMPLICATIONS OF US WORKERS' DIVERGING LOCATION CHOICES BY SKILL: 1980-2000 1.6402610 231 38.500000
RA 2 BEAUDRY P;GREEN DA;SAN... 2016 THE GREAT REVERSAL IN THE DEMAND FOR SKILL AND COGNITIVE TASKS 2.8988079 118 19.666667
RA 2 BOVE V;ELIA L 2017 MIGRATION, DIVERSITY, AND ECONOMIC GROWTH 3.5273623 93 18.600000
RA 2 BERG A;OSTRY JD;TSANGA... 2018 REDISTRIBUTION, INEQUALITY, AND GROWTH: NEW EVIDENCE 4.2418695 73 18.250000
Research Area 3: RA 3 (n = 829, density =0.4)
RA 3 DING C;WANG D;LIU C;ZH... 2017 EXPLORING THE INFLUENCE OF BUILT ENVIRONMENT ON TRAVEL MODE CHOICE CONSIDERING THE MEDIATING EFFECTS OF CAR OWNERSHIP AND ... 9.1160281 169 33.800000
RA 3 YE R;TITHERIDGE H 2017 SATISFACTION WITH THE COMMUTE: THE ROLE OF TRAVEL MODE CHOICE, BUILT ENVIRONMENT AND ATTITUDES 9.5054030 162 32.400000
RA 3 ETTEMA D;NIEUWENHUIS R 2017 RESIDENTIAL SELF-SELECTION AND TRAVEL BEHAVIOUR: WHAT ARE THE EFFECTS OF ATTITUDES, REASONS FOR LOCATION CHOICE AND THE BU... 13.9080705 76 15.200000
RA 3 MOURA F;CAMBRA P;GONÇA... 2017 MEASURING WALKABILITY FOR DISTINCT PEDESTRIAN GROUPS WITH A PARTICIPATORY ASSESSMENT METHOD: A CASE STUDY IN LISBON 6.2937941 153 30.600000
RA 3 SUN B;ERMAGUN A;DAN B 2017 BUILT ENVIRONMENTAL IMPACTS ON COMMUTING MODE CHOICE AND DISTANCE: EVIDENCE FROM SHANGHAI 6.8860996 122 24.400000
RA 3 EWING R;HAJRASOULIHA A... 2016 STREETSCAPE FEATURES RELATED TO PEDESTRIAN ACTIVITY 8.2999935 101 16.833333
RA 3 CAO X;YANG W 2017 EXAMINING THE EFFECTS OF THE BUILT ENVIRONMENT AND RESIDENTIAL SELF-SELECTION ON COMMUTING TRIPS AND THE RELATED CO2 EMISS... 11.1961741 72 14.400000
RA 3 SMITH M;HOSKING J;WOOD... 2017 SYSTEMATIC LITERATURE REVIEW OF BUILT ENVIRONMENT EFFECTS ON PHYSICAL ACTIVITY AND ACTIVE TRANSPORT - AN UPDATE AND NEW FI... 2.4938431 283 56.600000
RA 3 DING C;WANG Y;TANG T;M... 2018 JOINT ANALYSIS OF THE SPATIAL IMPACTS OF BUILT ENVIRONMENT ON CAR OWNERSHIP AND TRAVEL MODE CHOICE 9.9888373 60 15.000000
RA 3 LIN T;WANG D;GUAN X 2017 THE BUILT ENVIRONMENT, TRAVEL ATTITUDE, AND TRAVEL BEHAVIOR: RESIDENTIAL SELF-SELECTION OR RESIDENTIAL DETERMINATION? 8.5367254 70 14.000000
Research Area 4: RA 4 (n = 564, density =0.22)
RA 4 LIU X;LIANG X;LI X;XU ... 2017 A FUTURE LAND USE SIMULATION MODEL (FLUS) FOR SIMULATING MULTIPLE LAND USE SCENARIOS BY COUPLING HUMAN AND NATURAL EFFECTS 3.1452885 483 96.600000
RA 4 MUSTAFA A;HEPPENSTALL ... 2018 MODELLING BUILT-UP EXPANSION AND DENSIFICATION WITH MULTINOMIAL LOGISTIC REGRESSION, CELLULAR AUTOMATA AND GENETIC ALGORITHM 4.4477099 87 21.750000
RA 4 LIANG X;LIU X;LI X;CHE... 2018 DELINEATING MULTI-SCENARIO URBAN GROWTH BOUNDARIES WITH A CA-BASED FLUS MODEL AND MORPHOLOGICAL METHOD 2.5707646 149 37.250000
RA 4 MISHRA VN;RAI PK 2016 A REMOTE SENSING AIDED MULTI-LAYER PERCEPTRON-MARKOV CHAIN ANALYSIS FOR LAND USE AND LAND COVER CHANGE PREDICTION IN PATNA... 3.3768089 109 18.166667
RA 4 LIAO J;TANG L;SHAO G;S... 2016 INCORPORATION OF EXTENDED NEIGHBORHOOD MECHANISMS AND ITS IMPACT ON URBAN LAND-USE CELLULAR AUTOMATA SIMULATIONS 5.0911198 72 12.000000
RA 4 SHAFIZADEH-MOGHADAM H;... 2017 COUPLING MACHINE LEARNING, TREE-BASED AND STATISTICAL MODELS WITH CELLULAR AUTOMATA TO SIMULATE URBAN GROWTH 4.7758790 70 14.000000
RA 4 ABURAS MM;HO YM;RAMLI ... 2016 THE SIMULATION AND PREDICTION OF SPATIO-TEMPORAL URBAN GROWTH TRENDS USING CELLULAR AUTOMATA MODELS: A REVIEW 2.3930461 134 22.333333
RA 4 GHOSH P;MUKHOPADHYAY A... 2017 APPLICATION OF CELLULAR AUTOMATA AND MARKOV-CHAIN MODEL IN GEOSPATIAL ENVIRONMENTAL MODELING- A REVIEW 3.3878141 89 17.800000
RA 4 VAN VLIET J;BREGT AK;B... 2016 A REVIEW OF CURRENT CALIBRATION AND VALIDATION PRACTICES IN LAND-CHANGE MODELING 2.4664865 118 19.666667
RA 4 SHAFIZADEH-MOGHADAM H;... 2017 SENSITIVITY ANALYSIS AND ACCURACY ASSESSMENT OF THE LAND TRANSFORMATION MODEL USING CELLULAR AUTOMATA 6.8709014 41 8.200000
Research Area 5: RA 5 (n = 510, density =0.17)
RA 5 AALBERS MB 2017 THE VARIEGATED FINANCIALIZATION OF HOUSING 3.2803250 147 29.400000
RA 5 FERNANDEZ R;AALBERS MB 2016 FINANCIALIZATION AND HOUSING: BETWEEN GLOBALIZATION AND VARIETIES OF CAPITALISM 1.6657120 191 31.833333
RA 5 DERUDDER B;TAYLOR PJ 2018 CENTRAL FLOW THEORY: COMPARATIVE CONNECTIVITIES IN THE WORLD-CITY NETWORK 3.7666295 68 17.000000
RA 5 FIELDS D 2017 UNWILLING SUBJECTS OF FINANCIALIZATION 2.3659764 91 18.200000
RA 5 FIELDS D 2017 URBAN STRUGGLES WITH FINANCIALIZATION 3.2544421 48 9.600000
RA 5 GABOR D;BROOKS S 2017 THE DIGITAL REVOLUTION IN FINANCIAL INCLUSION: INTERNATIONAL DEVELOPMENT IN THE FINTECH ERA 0.7843639 191 38.200000
RA 5 PAN F;BI W;LENZER J;ZH... 2017 MAPPING URBAN NETWORKS THROUGH INTER-FIRM SERVICE RELATIONSHIPS: THE CASE OF CHINA 2.5068837 54 10.800000
RA 5 DERUDDER B;TAYLOR P 2016 CHANGE IN THE WORLD CITY NETWORK, 2000–2012 2.9720469 45 7.500000
RA 5 FINE B;SAAD-FILHO A 2017 THIRTEEN THINGS YOU NEED TO KNOW ABOUT NEOLIBERALISM 1.1684977 111 22.200000
RA 5 SIGLER TJ;MARTINUS K 2017 EXTENDING BEYOND ‘WORLD CITIES’ IN WORLD CITY NETWORK (WCN) RESEARCH: URBAN POSITIONALITY AND ECONOMIC LINKAGES THROUGH TH... 2.4462250 52 10.400000
Research Area 6: RA 6 (n = 445, density =0.12)
RA 6 FRIEDMAN S 2016 HABITUS CLIVÉ AND THE EMOTIONAL IMPRINT OF SOCIAL MOBILITY 0.8193785 142 23.666667
RA 6 MEIJERS MJ 2017 CONTAGIOUS EUROSCEPTICISM: THE IMPACT OF EUROSCEPTIC SUPPORT ON MAINSTREAM PARTY POSITIONS ON EUROPEAN INTEGRATION 0.7899340 94 18.800000
RA 6 DECOTEAU CL 2016 THE REFLEXIVE HABITUS: CRITICAL REALIST AND BOURDIEUSIAN SOCIAL ACTION 1.0712962 58 9.666667
RA 6 MUDDE C 2016 ON EXTREMISM AND DEMOCRACY IN EUROPE 0.7595157 81 13.500000
RA 6 DECOVILLE A;DURAND F 2019 EXPLORING CROSS-BORDER INTEGRATION IN EUROPE: HOW DO POPULATIONS CROSS BORDERS AND PERCEIVE THEIR NEIGHBOURS? 1.9951160 23 7.666667
RA 6 CASTELLÓ E;MIHELJ S 2018 SELLING AND CONSUMING THE NATION: UNDERSTANDING CONSUMER NATIONALISM 1.0162599 45 11.250000
RA 6 RAUCHFLEISCH A 2017 THE PUBLIC SPHERE AS AN ESSENTIALLY CONTESTED CONCEPT: A CO-CITATION ANALYSIS OF THE LAST 20 YEARS OF PUBLIC SPHERE RESEARCH 2.2679789 18 3.600000
RA 6 SOHN C 2016 NAVIGATING BORDERS' MULTIPLICITY: THE CRITICAL POTENTIAL OF ASSEMBLAGE 1.0076141 38 6.333333
RA 6 PIRRO ALP;TAGGART P 2018 THE POPULIST POLITICS OF EUROSCEPTICISM IN TIMES OF CRISIS: A FRAMEWORK FOR ANALYSIS 0.8350966 43 10.750000
RA 6 LAINE JP 2016 THE MULTISCALAR PRODUCTION OF BORDERS 0.4824858 73 12.166667
Research Area 7: RA 7 (n = 361, density =0.74)
RA 7 DE VOS J;MOKHTARIAN PL... 2016 TRAVEL MODE CHOICE AND TRAVEL SATISFACTION: BRIDGING THE GAP BETWEEN DECISION UTILITY AND EXPERIENCED UTILITY 6.7354510 193 32.166667
RA 7 DE VOS J 2020 THE EFFECT OF COVID-19 AND SUBSEQUENT SOCIAL DISTANCING ON TRAVEL BEHAVIOR 3.1029246 367 183.500000
RA 7 DE VOS J;WITLOX F 2017 TRAVEL SATISFACTION REVISITED. ON THE PIVOTAL ROLE OF TRAVEL SATISFACTION IN CONCEPTUALISING A TRAVEL BEHAVIOUR PROCESS 11.9390966 78 15.600000
RA 7 CHATTERJEE K;CHNG S;CL... 2020 COMMUTING AND WELLBEING: A CRITICAL OVERVIEW OF THE LITERATURE WITH IMPLICATIONS FOR POLICY AND FUTURE RESEARCH 9.4672134 87 43.500000
RA 7 SINGLETON PA 2019 WALKING (AND CYCLING) TO WELL-BEING: MODAL AND OTHER DETERMINANTS OF SUBJECTIVE WELL-BEING DURING THE COMMUTE 9.6545268 82 27.333333
RA 7 FRIMAN M;GÄRLING T;ETT... 2017 HOW DOES TRAVEL AFFECT EMOTIONAL WELL-BEING AND LIFE SATISFACTION? 8.4560298 84 16.800000
RA 7 DE VOS J 2019 ANALYSING THE EFFECT OF TRIP SATISFACTION ON SATISFACTION WITH THE LEISURE ACTIVITY AT THE DESTINATION OF THE TRIP, IN REL... 9.7073655 66 22.000000
RA 7 DE VOS J 2018 DO PEOPLE TRAVEL WITH THEIR PREFERRED TRAVEL MODE? ANALYSING THE EXTENT OF TRAVEL MODE DISSONANCE AND ITS EFFECT ON TRAVEL... 9.6978807 64 16.000000
RA 7 ZHU J;FAN Y 2018 COMMUTE HAPPINESS IN XI'AN, CHINA: EFFECTS OF COMMUTE MODE, DURATION, AND FREQUENCY 11.4992413 53 13.250000
RA 7 ZHU J;FAN Y 2018 DAILY TRAVEL BEHAVIOR AND EMOTIONAL WELL-BEING: EFFECTS OF TRIP MODE, DURATION, PURPOSE, AND COMPANIONSHIP 8.7903726 65 16.250000
Research Area 8: RA 8 (n = 312, density =0.36)
RA 8 DE HAAS M;FABER R;HAME... 2020 HOW COVID-19 AND THE DUTCH ‘INTELLIGENT LOCKDOWN’ CHANGE ACTIVITIES, WORK AND TRAVEL BEHAVIOUR: EVIDENCE FROM LONGITUDINAL... 1.7099018 225 112.500000
RA 8 LANZINI P;KHAN SA 2017 SHEDDING LIGHT ON THE PSYCHOLOGICAL AND BEHAVIORAL DETERMINANTS OF TRAVEL MODE CHOICE: A META-ANALYSIS 3.1083584 102 20.400000
RA 8 ZHAO P;LI S 2017 BICYCLE-METRO INTEGRATION IN A GROWING CITY: THE DETERMINANTS OF CYCLING AS A TRANSFER MODE IN METRO STATION AREAS IN BEIJING 2.7911796 107 21.400000
RA 8 KROESEN M;HANDY S;CHOR... 2017 DO ATTITUDES CAUSE BEHAVIOR OR VICE VERSA? AN ALTERNATIVE CONCEPTUALIZATION OF THE ATTITUDE-BEHAVIOR RELATIONSHIP IN TRAVE... 2.1146210 138 27.600000
RA 8 MUÑOZ B;MONZON A;LÓPEZ E 2016 TRANSITION TO A CYCLABLE CITY: LATENT VARIABLES AFFECTING BICYCLE COMMUTING 3.9535856 66 11.000000
RA 8 FERNÁNDEZ-HEREDIA Á;JA... 2016 MODELLING BICYCLE USE INTENTION: THE ROLE OF PERCEPTIONS 3.0257952 50 8.333333
RA 8 VIJ A;WALKER JL 2016 HOW, WHEN AND WHY INTEGRATED CHOICE AND LATENT VARIABLE MODELS ARE LATENTLY USEFUL 1.0241879 140 23.333333
RA 8 ZAILANI S;IRANMANESH M... 2016 IS THE INTENTION TO USE PUBLIC TRANSPORT FOR DIFFERENT TRAVEL PURPOSES DETERMINED BY DIFFERENT FACTORS? 2.4050121 57 9.500000
RA 8 HOFFMANN C;ABRAHAM C;W... 2017 WHAT COGNITIVE MECHANISMS PREDICT TRAVEL MODE CHOICE? A SYSTEMATIC REVIEW WITH META-ANALYSIS 2.6587322 50 10.000000
RA 8 CASS N;FAULCONBRIDGE J 2016 COMMUTING PRACTICES: NEW INSIGHTS INTO MODAL SHIFT FROM THEORIES OF SOCIAL PRACTICE 1.1778318 104 17.333333
Research Area 9: RA 9 (n = 289, density =0.28)
RA 9 BELTRÁN A;MADDISON D;E... 2018 IS FLOOD RISK CAPITALISED INTO PROPERTY VALUES? 2.4804819 52 13.000000
RA 9 ZHANG L 2016 FLOOD HAZARDS IMPACT ON NEIGHBORHOOD HOUSE PRICES: A SPATIAL QUANTILE REGRESSION ANALYSIS 2.2365011 57 9.500000
RA 9 YEH I-C;HSU T-K 2018 BUILDING REAL ESTATE VALUATION MODELS WITH COMPARATIVE APPROACH THROUGH CASE-BASED REASONING 2.1925098 46 11.500000
RA 9 ABIDOYE RB;CHAN APC 2018 IMPROVING PROPERTY VALUATION ACCURACY: A COMPARISON OF HEDONIC PRICING MODEL AND ARTIFICIAL NEURAL NETWORK 2.7010110 32 8.000000
RA 9 KOUSKY C 2018 FINANCING FLOOD LOSSES: A DISCUSSION OF THE NATIONAL FLOOD INSURANCE PROGRAM 1.3431438 44 11.000000
RA 9 BELTRÁN A;MADDISON D;E... 2019 THE IMPACT OF FLOODING ON PROPERTY PRICES: A REPEAT-SALES APPROACH 2.8109550 20 6.666667
RA 9 ABIDOYE RB;CHAN APC 2017 ARTIFICIAL NEURAL NETWORK IN PROPERTY VALUATION: APPLICATION FRAMEWORK AND RESEARCH TREND 2.1069042 26 5.200000
RA 9 ABIDOYE RB;CHAN APC 2017 MODELLING PROPERTY VALUES IN NIGERIA USING ARTIFICIAL NEURAL NETWORK 2.5188722 21 4.200000
RA 9 HONG J;CHOI H;KIM W-S 2020 A HOUSE PRICE VALUATION BASED ON THE RANDOM FOREST APPROACH: THE MASS APPRAISAL OF RESIDENTIAL PROPERTY IN SOUTH KOREA 2.0740795 22 11.000000
RA 9 VOTSIS A;PERRELS A 2016 HOUSING PRICES AND THE PUBLIC DISCLOSURE OF FLOOD RISK: A DIFFERENCE-IN-DIFFERENCES ANALYSIS IN FINLAND 1.6552468 27 4.500000
Research Area 10: RA 10 (n = NA, density =NA)
NA AWASTHI A;OMRANI H 2019 A GOAL-ORIENTED APPROACH BASED ON FUZZY AXIOMATIC DESIGN FOR SUSTAINABLE MOBILITY PROJECT SELECTION 0.1693548 78 26.000000
NA MA T-Y;RASULKHANI S;CH... 2019 A DYNAMIC RIDESHARING DISPATCH AND IDLE VEHICLE REPOSITIONING STRATEGY WITH INTEGRATED TRANSIT TRANSFERS 0.1033525 50 16.666667
NA YANG M;DIJST M;FABER J... 2020 USING STRUCTURAL EQUATION MODELING TO EXAMINE PATHWAYS BETWEEN PERCEIVED RESIDENTIAL GREEN SPACE AND MENTAL HEALTH AMONG I... 0.1386889 18 9.000000
NA YANG M;DIJST M;HELBICH M 2018 MENTAL HEALTH AMONG MIGRANTS IN SHENZHEN, CHINA: DOES IT MATTER WHETHER THE MIGRANT POPULATION IS IDENTIFIED BY HUKOU OR B... 0.1368160 18 4.500000
NA MA T-Y 2017 ON-DEMAND DYNAMIC BI-/MULTI-MODAL RIDE-SHARING USING OPTIMAL PASSENGER-VEHICLE ASSIGNMENTS 0.0844444 13 2.600000
NA KUÉPIÉ M;TENIKUE M;WAL... 2016 SOCIAL NETWORKS AND SMALL BUSINESS PERFORMANCE IN WEST AFRICAN BORDER REGIONS 0.1000000 10 1.666667
NA GLUMAC B;HAN Q;SCHAEFER W 2018 A NEGOTIATION DECISION MODEL FOR PUBLIC–PRIVATE PARTNERSHIPS IN BROWNFIELD REDEVELOPMENT 0.0995676 9 2.250000
NA AWASTHI A;OMRANI H 2018 A SCENARIO SIMULATION APPROACH FOR SUSTAINABLE MOBILITY PROJECT EVALUATION BASED ON FUZZY COGNITIVE MAPS 0.1693548 5 1.250000
NA YANG M;DIJST M;HELBICH M 2020 MIGRATION TRAJECTORIES AND THEIR RELATIONSHIP TO MENTAL HEALTH AMONG INTERNAL MIGRANTS IN URBAN CHINA: A SEQUENCE ALIGNMEN... 0.1672707 5 2.500000
NA WALTHER OJ;TENIKUE M;T... 2019 ECONOMIC PERFORMANCE, GENDER AND SOCIAL NETWORKS IN WEST AFRICAN FOOD SYSTEMS 0.1000000 4 1.333333

Development

`summarise()` has grouped output by 'com_name'. You can override using the `.groups` argument.

Connectivity between the research areas

Technical description

In a bibliographic coupling network, the coupling-strength between publications is determined by the number of commonly cited references they share, assuming a common pool of references to indicate similarity in context, methods, or theory. Formally, the strength of the relationship between a publication pair \(i\) and \(j\) (\(s_{i,j}^{bib}\)) is expressed by the number of commonly cited references.

\[s_{i,j}^{bib} = \sum_m c_{i,m} c_{j,m}\]

Since our corpus contains publications which differ strongly in terms of the number of cited references, we normalize the coupling strength by the Jaccard similarity coefficient. Here, we weight the intercept of two publications’ bibliography (shared refeences) by their union (number of all references cited by either \(i\) or \(j\)). It is bounded between zero and one, where one indicates the two publications to have an identical bibliography, and zero that they do not share any cited reference. Thereby, we prevent publications from having high coupling strength due to a large bibliography (e.g., literature surveys).

\[S_{i,j}^{jac-bib} =\frac{C(i \cap j)}{C(i \cup j)} = \frac{s_{i,j}^{bib}}{c_i + c_j - s_{i,j}^{bib}}\]

More recent articles have a higher pool of possible references to co-cite to, hence they are more likely to be coupled. Consequently, bibliographic coupling represents a forward looking measure, and the method of choice to identify the current knowledge frontier at the point of analysis.

Knowledge Bases, Research Areas & Topics Interaction

Endnotes

All results are preliminary so far…

LS0tCnRpdGxlOiAiTHV4ZW1ib3VyZyBSZXNlYXJjaCBFdmFsdWF0aW9uIDIwMjI6IEZpZWxkIE1hcHBpbmcgb2YgS25vd2xlZGdlIFN0cnVjdHVyZSIKYXV0aG9yOiAiRGFuaWVsIFMuIEhhaW4iCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVkICVCLCAlWScpYCIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogZmxhdGx5CiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGRmX3ByaW50OiBwYWdlZAogICAgdG9jOiBmYWxzZQogICAgdG9jX2RlcHRoOiAyCiAgICB0b2NfZmxvYXQ6CiAgICAgIGNvbGxhcHNlZDogZmFsc2UKICBodG1sX2RvY3VtZW50OgogICAgdGhlbWU6IGZsYXRseQogICAgY29kZV9mb2xkaW5nOiBoaWRlCiAgICBkZl9wcmludDogcGFnZWQKICAgIHRvYzogZmFsc2UKICAgIHRvY19kZXB0aDogMgogICAgdG9jX2Zsb2F0OgogICAgICBjb2xsYXBzZWQ6IGZhbHNlCnBhcmFtczoKICAgIGluc3RpdHV0ZTogCiAgICAgICB2YWx1ZTogJ1Rlc3RpbnN0JwogICAgZGVwYXJ0bWVudDoKICAgICAgIHZhbHVlOiAnVGVzdGRlcHQnCi0tLQoKPCEtLS0KIyBBZGQgdG8gWUFNTCB3aGVuIHJldmlld2luZwogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogZmxhdGx5CiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGRmX3ByaW50OiBwYWdlZAogICAgdG9jOiBmYWxzZQogICAgdG9jX2RlcHRoOiAyCiAgICB0b2NfZmxvYXQ6CiAgICAgIGNvbGxhcHNlZDogZmFsc2UKLS0tPgoKCmBgYHs9aHRtbH0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLm1haW4tY29udGFpbmVyIHsKICBtYXgtd2lkdGg6IDEyMDBweDsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87Cn0KPC9zdHlsZT4KYGBgCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KIyMjIEdlbmVyaWMgcHJlYW1ibGUKI3JtKGxpc3Q9bHMoKSkKU3lzLnNldGVudihMQU5HID0gImVuIikKb3B0aW9ucyhzY2lwZW4gPSA1KQpzZXQuc2VlZCgxMzM3KQoKIyMjIExvYWQgcGFja2FnZXMgIAojIGdlbmVyYWwKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkobWFncml0dHIpCgojIEtpYmxpbyAmIE5XCmxpYnJhcnkoYmlibGlvbWV0cml4KQpsaWJyYXJ5KHRpZHlncmFwaCkKbGlicmFyeShnZ3JhcGgpCgojIE5MUApsaWJyYXJ5KHRpZHl0ZXh0KQoKIyBEYXRhdml6CmxpYnJhcnkocGxvdGx5KQoKIyBLbml0CmxpYnJhcnkoa25pdHIpICMgRm9yIGRpc3BsYXkgb2YgdGhlIG1hcmtkb3duCmxpYnJhcnkoa2FibGVFeHRyYSkgIyBGb3IgdGFibGUgc3R5bGluZwoKIyBvd24gZnVuY3Rpb25zCnNvdXJjZSgiLi4vZnVuY3Rpb25zL2Z1bmN0aW9uc19iYXNpYy5SIikKc291cmNlKCIuLi9mdW5jdGlvbnMvZnVuY3Rpb25zX3N1bW1hcnkuUiIpCnNvdXJjZSgiLi4vZnVuY3Rpb25zLzAwX3BhcmFtZXRlcnMuUiIpCgojIEtuaXRyIG9wdGlvbnMKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSwgCiAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nID0gRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IEZBTFNFKQpgYGAKCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KI3Zhcl9pbnN0IDwtICdMSVNFUicKI3Zhcl9kZXB0IDwtICdVRCcKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KdmFyX2luc3QgPC0gcGFyYW1zJGluc3RpdHV0ZQp2YXJfZGVwdCA8LSBwYXJhbXMkZGVwYXJ0bWVudApgYGAKCgojIEludHJvZHVjdGlvbjogYHIgdmFyX2luc3RgIERlcGFydG1lbnQgYHIgdmFyX2RlcHRgCgpIZXJlIGFyZSBwcmVsaW1pbmFyeSByZXN1bHRzIG9mIHRoZSBiaWJsaW9tZXRyaWMgbWFwcGluZyBvZiB0aGUgMjAyMiBMdXhlbWJvdXJnIHJlc2VhcmNoIGV2YWx1YXRpb24uIEl0cyBwdXJwb3NlIGlzOgoKKiBUbyBtYXAgdGhlIGJyb2FkZXIgcmVzZWFyY2ggY29tbXVuaXR5IGFuZCBkaXN0aW5jdCByZXNlYXJjaCBmaWVsZCB0aGUgZGVwYXJ0bWVudCBjb250cmlidXRlcyB0by4KKiBJZGVudGlmeSBjb3JlIGtub3dsZWRnZSBiYXNlcywgcmVzZWFyY2ggYXJlYXMgZ3RyZW5kcyBhbmQgdG9waWNzLgoqIEhpZ2hsaWdodCB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIGRlcGFydG1lbnQgd2l0aGluIHRoaXMgZHluYW1pY3MuCgpUaGUgbWV0aG9kIGZvciB0aGUgcmVzZWFyY2gtZmllbGQtbWFwcGluZyBjYW4gYmUgcmVpdmlld2VkIGhlcmU6CgpbUmFrYXMsIE0uLCAmIEhhaW4sIEQuIFMuICgyMDE5KS4gVGhlIHN0YXRlIG9mIGlubm92YXRpb24gc3lzdGVtIHJlc2VhcmNoOiBXaGF0IGhhcHBlbnMgYmVuZWF0aCB0aGUgc3VyZmFjZT8uIFJlc2VhcmNoIFBvbGljeSwgNDgoOSksIDEwMzc4Ny5dKGh0dHBzOi8vZG9pLm9yZy8xMC4xMDE2L2oucmVzcG9sLjIwMTkuMDQuMDExKQoKCjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgo8IS0tICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBORVhUIFBBUlQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgLS0+CjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgo8IS0tICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQojIExvYWQgZGF0YQpNIDwtIHJlYWRSRFMocGFzdGUwKCcuLi8uLi90ZW1wL01fJywgc3RyX3RvX2xvd2VyKHZhcl9pbnN0KSwgJ18nLCBzdHJfdG9fbG93ZXIodmFyX2RlcHQpLCAnLnJkcycpKSAlPiUgYXNfdGliYmxlKCkgJT4lIAogIGRpc3RpbmN0KFVULCAua2VlcF9hbGwgPSBUUlVFKSAlPiUgCiAgZmlsdGVyKFBZID49IFBZX21pbiwgUFkgPD0gUFlfbWF4KSAKYGBgCgojIFNlZWQgQXJ0aWNsZXMKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQpzZWVkIDwtY29udmVydDJkZihmaWxlID0gcGFzdGUwKCcuLi8uLi9kYXRhL3NlZWRzL3Njb3B1c18nLCBzdHJfdG9fbG93ZXIodmFyX2luc3QpLCAnXycsIHN0cl90b19sb3dlcih2YXJfZGVwdCksICdfc2VlZF9zZWxlY3QuY3N2JyksIGRic291cmNlID0gInNjb3B1cyIsIGZvcm1hdCA9ICJjc3YiKSAlPiUKICBhc190aWJibGUoKSAlPiUKICBtdXRhdGUoc2VlZCA9IFRSVUUpIApgYGAKClRoZSBzZWVkIGFydGljbGVzIGRlZW1lZCByZXByZXNlbnRhdGl2ZSBmb3IgdGhlIGFjdGl2ZSBhcmVhcyBvZiByZXNlYXJjaCBpbiB0aGUgaW5zdGl0dXRpb24sIGFuZCBpbmNsdWRlIGF1dGhvcnMgYWZmaWxpYXRlZCB3aXRoIHRoZSBpbnN0aXR1dGlvbi4gVGhleSBjYW4gYmUgc2VsZWN0ZWQgaW4gdGhyZWUgd2F5czoKCjEuIFZpYSBiaWJsaW9ncmFwaGljIGNsdXN0ZXJpbmcgb2YgdGhlIGluc3RpdHV0aW9ucyBwdWJsaWNhdGlvbnMgYW5kIHNlbGVjdGlvbiBvZiBtb3N0IGNlbnRyYWwgYXJ0aWNsZXMgcGVyIGNsdXN0ZXIgKG9ubHkgY2xzdXRlcnMgd2hlcmUgbiA+PSAwLjA1TikuIFNlbGVjdGlvbiBjYW4gYmUgZm91bmQgYXQ6YHIgcGFzdGUwKCdodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsLWhhaW4vYmlibGlvX2x1eF8yMDIyL2Jsb2IvbWFzdGVyL291dHB1dC9zZWVkL3Njb3B1c18nLCBzdHJfdG9fbG93ZXIodmFyX2luc3QpLCAnXycsIHN0cl90b19sb3dlcih2YXJfZGVwdCksICdfc2VlZC5jc3YnKWAKMi4gTUFudWFsIHNlbGVjdGlvbiBvZiByZWxldmFudCBwdWJsaWNhdGlvbnMuCjMuIEEgY29tYmluYXRpb24gb2YgMS4gYW5kIDIuCgpUaGUgcHJlc2VudCBhbmFseXNpcyBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHNlZWQgYXJ0aWNsZXM6CgpgYGB7cn0Kc2VlZCAlPiUKICBzZWxlY3QoQVUsIFBZLCBUSSwgSkkpICU+JQogIG11dGF0ZShBVSA9IEFVICU+JSBzdHJfdHJ1bmMoMzApLAogICAgICAgICBUSSA9IFRJICU+JSBzdHJfdHJ1bmMoMTAwKSwKICAgICAgICAgSkkgPSBKSSAlPiUgc3RyX3RydW5jKDMwKSkgJT4lCiAga2FibGUoKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIsICJjb25kZW5zZWQiLCAicmVzcG9uc2l2ZSIpLCBmb250X3NpemUgPSAxMCkKYGBgCgoKCiMgVG9waWMgbW9kZWxsaW5nIHsudGFic2V0fQoKSGVyZSwgd2UgcmVwb3J0IHRoZSByZXN1bHRzIG9mIGEgTERBIHRvcGljLW1vZGVsbGluZyAoYmFzaWNhbGx5LCBjbHVzdGVyaW5nIG9uIHdvcmRzKSBvbiBhbGwgdGl0bGUrYWJzdHJhY3QgdGV4dHMuCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KdGV4dF90aWR5IDwtIHJlYWRSRFMocGFzdGUwKCcuLi8uLi90ZW1wL3RleHRfdGlkeV8nLCBzdHJfdG9fbG93ZXIodmFyX2luc3QpLCAnXycsIHN0cl90b19sb3dlcih2YXJfZGVwdCksICcucmRzJykpCnRleHRfbGRhIDwtIHJlYWRSRFMocGFzdGUwKCcuLi8uLi90ZW1wL3RleHRfTERBXycsIHN0cl90b19sb3dlcih2YXJfaW5zdCksICdfJywgc3RyX3RvX2xvd2VyKHZhcl9kZXB0KSwgJy5yZHMnKSkgCgp0ZXh0X2xkYV9iZXRhIDwtIHRleHRfbGRhICU+JSB0aWR5KG1hdHJpeCA9ICJiZXRhIikgCnRleHRfbGRhX2dhbW1hIDwtIHRleHRfbGRhICU+JSB0aWR5KG1hdHJpeCA9ICJnYW1tYSIpCmBgYAoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CmNvbV9uYW1lc190b3AgPC0gdGliYmxlKCAKICBjb20gPSAxOih0ZXh0X2xkYV9nYW1tYSAlPiUgcHVsbCh0b3BpYykgJT4lIG5fZGlzdGluY3QoKSksCiAgdHlwZSA9ICdUUCcsCiAgY29sID0gY29tICU+JSBnZ19jb2xvcl9zZWxlY3QocGFsID0gcGFsX3RwKSwKICBjb21fbmFtZSA9IAogICAgIyAjIDFzdCBhbHRlcm5hdGl2ZTogTnVtYmVyIHRoZW0gMS1uCiAgICBwYXN0ZSh0eXBlLCAxOih0ZXh0X2xkYV9nYW1tYSAlPiUgcHVsbCh0b3BpYykgJT4lIG5fZGlzdGluY3QoKSkpCiAgIyAjIDJuZCBhbHRlcm5hdGl2ZTogTG9hZCBmcm9tIGNzdgogICMgcmVhZF9jc3YoJy4uLy4uL2RhdGEvY29tbXVuaXR5X2xhYmVsaW5nJykgJT4lIGZpbHRlcih0eXBlID0gJ3RvcGljJywgaW5zdGl0dXRlID0gdmFyX2luc3QsIGRlcGFydG1lbnQgPSB2YXJfZGVwdCkgJT4lIGFycmFuZ2UoY29tKSAlPiUgcHVsbChsYWJlbCkKICAjIDNyZCBhbHRlcm5hdGl2ZTogZGVjbGFyZSBoZXJlCiAgICAjYygnMSBUSVMgJiBNYXJrZXRzJywgJzIgPyAuLi4gJywpCiAgKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQp0ZXh0X2xkYV9iZXRhICU8PiUgIGxlZnRfam9pbihjb21fbmFtZXNfdG9wICU+JSBzZWxlY3QoY29tLCBjb21fbmFtZSwgY29sKSwgYnkgPSBjKCd0b3BpYycgPSAnY29tJykpCnRleHRfbGRhX2dhbW1hICU8PiUgbGVmdF9qb2luKGNvbV9uYW1lc190b3AgJT4lIHNlbGVjdChjb20sIGNvbV9uYW1lLCBjb2wpLCBieSA9IGMoJ3RvcGljJyA9ICdjb20nKSkKYGBgCgoKIyMgVG9waWNzIGJ5IHRvcHdvcmRzCgpgYGB7ciwgZmlnLndpZHRoPTE3LjUsIGZpZy5oZWlnaHQ9MTcuNX0gCnRleHRfbGRhX2JldGEgJT4lCiAgZ3JvdXBfYnkoY29tX25hbWUpICU+JQogIHNsaWNlX21heChiZXRhLCBuID0gMTApICU+JQogIHVuZ3JvdXAoKSAlPiUKICBtdXRhdGUodGVybSA9IHJlb3JkZXJfd2l0aGluKHRlcm0sIGJldGEsIGNvbV9uYW1lKSkgJT4lCiAgZ2dwbG90KGFlcyh0ZXJtLCBiZXRhLCBmaWxsID0gZmFjdG9yKGNvbV9uYW1lKSkpICsKICBnZW9tX2NvbChzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgZmFjZXRfd3JhcCh+IGNvbV9uYW1lLCBzY2FsZXMgPSAiZnJlZSIsIG5jb2wgPSAzKSArCiAgY29vcmRfZmxpcCgpICsKICBzY2FsZV94X3Jlb3JkZXJlZCgpICsKICBsYWJzKHggPSAiSW50cmEtdG9waWMgZGlzdHJpYnV0aW9uIG9mIHdvcmQiLAogICAgICAgeSA9ICJXb3JkcyBpbiB0b3BpYyIpICsgCiAgc2NhbGVfZmlsbF9tYW51YWwobmFtZSA9ICJMZWdlbmQiLCB2YWx1ZXMgPSBjb21fbmFtZXNfdG9wICU+JSBwdWxsKGNvbCkpIAoKI3Bsb3RfbHkgPC0gcGxvdCAlPiUgcGxvdGx5OjpnZ3Bsb3RseSgpCiNodG1sd2lkZ2V0czo6c2F2ZVdpZGdldChwbG90bHk6OmFzX3dpZGdldChwbG90X2x5KSwgJy4uL291dHB1dFx2aXNfcGxvdGx5X3RvcGljX3Rlcm1zLmh0bWwnLCBzZWxmY29udGFpbmVkID0gVFJVRSkKYGBgCgoqKk5vdGU6KiogV2hpbGUgdGhpcyBzdGF0aWMgdmllcyBpcyBoZWxwZnVsLCBJIHJlY29tbWVuZCB1c2luZyB0aGUgaW50ZXJhY3RpdmUgTERBVmlzIHZlcnNpb24gdG8gYmUgZm91bmQgdW5kZXIgYHIgcGFzdGUwKCdodHRwczovL2RhbmllbC1oYWluLmdpdGh1Yi5pby9iaWJsaW9fbHV4XzIwMjIvb3V0cHV0L3RvcGljX21vZGVsbGluZy9MREF2aXpfJywgc3RyX3RvX2xvd2VyKHZhcl9pbnN0KSwgJ18nLCBzdHJfdG9fbG93ZXIodmFyX2RlcHQpLCAnLnJkcy9pbmRleC5odG1sI3RvcGljPTEmbGFtYmRhPTAuNjAmdGVybT0nKWAuIEZvciBmdW5jdGlvbmFsaXR5IGFuZCB1c2FnZSwgc2VlIHRlY2huaWNhbCBkZXNjcmlwdGlvbiBpbiB0aGUgbmV4dCB0YWIuCgojIyBUb3BpY3Mgb3ZlciB0aW1lCgpgYGB7ciwgZmlnLndpZHRoID0gMTUsIGZpZy5oZWlnaHQ9Ny41fQp0ZXh0X2xkYV9nYW1tYSAlPiUKICByZW5hbWUod2VpZ2h0ID0gZ2FtbWEpICU+JQogIGxlZnRfam9pbihNICU+JSBzZWxlY3QoWFgsIFBZKSwgYnkgPSBjKCdkb2N1bWVudCcgPSAnWFgnKSkgJT4lCiAgbXV0YXRlKFBZID0gYXMubnVtZXJpYyhQWSkpICU+JQogIGdyb3VwX2J5KFBZLCBjb21fbmFtZSkgJT4lIHN1bW1hcmlzZSh3ZWlnaHQgPSBzdW0od2VpZ2h0KSkgJT4lIHVuZ3JvdXAoKSAlPiUKICBncm91cF9ieShQWSkgJT4lIG11dGF0ZSh3ZWlnaHRfUFkgPSBzdW0od2VpZ2h0KSkgJT4lIHVuZ3JvdXAoKSAlPiUKICBtdXRhdGUod2VpZ2h0X3JlbCA9IHdlaWdodCAvIHdlaWdodF9QWSkgJT4lCiAgc2VsZWN0KFBZLCBjb21fbmFtZSwgd2VpZ2h0LCB3ZWlnaHRfcmVsKSAlPiUKICBmaWx0ZXIoUFkgPj0gUFlfbWluICYgUFkgPD0gUFlfbWF4KSAlPiUKICBhcnJhbmdlKFBZLCBjb21fbmFtZSkgJT4lCiAgcGxvdF9zdW1tYXJ5X3RpbWVsaW5lKHkxID0gd2VpZ2h0LCB5MiA9IHdlaWdodF9yZWwsIHQgPSBQWSwgdF9taW4gPSBQWV9taW4sIHRfbWF4ID0gUFlfbWF4LCBieSA9IGNvbV9uYW1lLCAgbGFiZWwgPSBUUlVFLCBwYWwgPSBwYWxfdHAsIAogICAgICAgICAgICAgICAgICAgICAgICB5MV90ZXh0ID0gIlRvcGljIHBvcHVsYXJpdHkgYW5udWFseSIsIHkyX3RleHQgPSAiU2hhcmUgb2YgdG9waWMgYW5udWFsbHkiKSArCiAgcGxvdF9hbm5vdGF0aW9uKHRpdGxlID0gcGFzdGUoJ1RvcGljIE1vZGVsbGluZzonLCB2YXJfaW5zdCwgJ0RlcHQuJywgdmFyX2RlcHQsIHNlcCA9ICcgJyksCiAgICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gcGFzdGUoJ1RpbWVmcmFtZTonLCBQWV9taW4sICctJywgUFlfbWF4ICwgc2VwID0gJyAnKSwKICAgICAgICAgICAgICAgICAgY2FwdGlvbiA9ICdBYnNvbHV0ZSB0b3BpYyBhcHBlYXJhbmNlIChsZWZ0KSwgUmVsYXRpdmUgdG9waWMgYXBwZWFyYW5jZSAocmlnaHQpJykKYGBgCgoKPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgLS0+CjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgo8IS0tICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIE5FWFQgUEFSVCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgLS0+CjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CnJtKHRleHRfdGlkeSwgdGV4dF9sZGEpCmBgYAoKCiMjIFRlY2huaWNhbCBEZXNjcmlwdGlvbgoKIyMjIExEQSBUb3BpYyBNb2RlbGxpbmcKClRvcGljIG1vZGVsaW5nIGlzIGEgdHlwZSBvZiBzdGF0aXN0aWNhbCBtb2RlbGluZyBmb3IgZGlzY292ZXJpbmcgdGhlIGFic3RyYWN0IOKAnHRvcGljc+KAnSB0aGF0IG9jY3VyIGluIGEgY29sbGVjdGlvbiBvZiBkb2N1bWVudHMuIExhdGVudCBEaXJpY2hsZXQgQWxsb2NhdGlvbiAoTERBKSBpcyBhbiBleGFtcGxlIG9mIHRvcGljIG1vZGVsIGFuZCBpcyB1c2VkIHRvIGNsYXNzaWZ5IHRleHQgaW4gYSBkb2N1bWVudCB0byBhIHBhcnRpY3VsYXIgdG9waWMuIAoKTERBIGlzIGEgZ2VuZXJhdGl2ZSBwcm9iYWJpbGlzdGljIG1vZGVsIHRoYXQgYXNzdW1lcyBlYWNoIHRvcGljIGlzIGEgbWl4dHVyZSBvdmVyIGFuIHVuZGVybHlpbmcgc2V0IG9mIHdvcmRzLCBhbmQgZWFjaCBkb2N1bWVudCBpcyBhIG1peHR1cmUgb2Ygb3ZlciBhIHNldCBvZiB0b3BpYyBwcm9iYWJpbGl0aWVzLiBJdCBidWlsZHMgYSB0b3BpYyBwZXIgZG9jdW1lbnQgbW9kZWwgYW5kIHdvcmRzIHBlciB0b3BpYyBtb2RlbCwgbW9kZWxlZCBhcyBEaXJpY2hsZXQgZGlzdHJpYnV0aW9ucy4KCiMjIyBMREFWaXMKCkxEQXZpcyBpcyBhIHdlYi1iYXNlZCBpbnRlcmFjdGl2ZSB2aXN1YWxpc2F0aW9uIG9mIHRvcGljcyBlc3RpbWF0ZWQgdXNpbmcgTERBLiBJdCBwcm92aWRlcyBhIGdsb2JhbCB2aWV3IG9mIHRoZSB0b3BpY3MgKGFuZCBob3cgdGhleSBkaWZmZXIgZnJvbSBlYWNoIG90aGVyKSwgd2hpbGUgYXQgdGhlIHNhbWUgdGltZSBhbGxvd2luZyBmb3IgYSBkZWVwIGluc3BlY3Rpb24gb2YgdGhlIHRlcm1zIG1vc3QgaGlnaGx5IGFzc29jaWF0ZWQgd2l0aCBlYWNoIGluZGl2aWR1YWwgdG9waWMuIFRoZSBwYWNrYWdlIGV4dHJhY3RzIGluZm9ybWF0aW9uIGZyb20gYSBmaXR0ZWQgTERBIHRvcGljIG1vZGVsIHRvIGluZm9ybSBhbiBpbnRlcmFjdGl2ZSB3ZWItYmFzZWQgdmlzdWFsaXphdGlvbi4gVGhlIHZpc3VhbGlzYXRpb24gaGFzIHR3byBiYXNpYyBwaWVjZXMuCgpUaGUgKipsZWZ0IHBhbmVsKiogdmlzdWFsaXNlIHRoZSB0b3BpY3MgYXMgY2lyY2xlcyBpbiB0aGUgdHdvLWRpbWVuc2lvbmFsIHBsYW5lIHdob3NlIGNlbnRyZXMgYXJlIGRldGVybWluZWQgYnkgY29tcHV0aW5nIHRoZSBKZW5zZW7igJNTaGFubm9uIGRpdmVyZ2VuY2UgYmV0d2VlbiB0b3BpY3MsIGFuZCB0aGVuIGJ5IHVzaW5nIG11bHRpZGltZW5zaW9uYWwgc2NhbGluZyB0byBwcm9qZWN0IHRoZSBpbnRlci10b3BpYyBkaXN0YW5jZXMgb250byB0d28gZGltZW5zaW9ucy4gRWFjaCB0b3BpY+KAmXMgb3ZlcmFsbCBwcmV2YWxlbmNlIGlzIGVuY29kZWQgdXNpbmcgdGhlIGFyZWFzIG9mIHRoZSBjaXJjbGVzLgoKVGhlICoqcmlnaHQgcGFuZWwqKiBkZXBpY3RzIGEgaG9yaXpvbnRhbCBiYXIgY2hhcnQgd2hvc2UgYmFycyByZXByZXNlbnQgdGhlIGluZGl2aWR1YWwgdGVybXMgdGhhdCBhcmUgdGhlIG1vc3QgdXNlZnVsIGZvciBpbnRlcnByZXRpbmcgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0b3BpYyBvbiB0aGUgbGVmdC4gQSBwYWlyIG9mIG92ZXJsYWlkIGJhcnMgcmVwcmVzZW50IGJvdGggdGhlIGNvcnB1cy13aWRlIGZyZXF1ZW5jeSBvZiBhIGdpdmVuIHRlcm0gYXMgd2VsbCBhcyB0aGUgdG9waWMtc3BlY2lmaWMgZnJlcXVlbmN5IG9mIHRoZSB0ZXJtLgoKVGhlICRcbGFtYmRhJCBzbGlkZXIgYWxsb3dzIHRvIHJhbmsgdGhlIHRlcm1zIGFjY29yZGluZyB0byB0ZXJtIHJlbGV2YW5jZS4gQnkgZGVmYXVsdCwgdGhlIHRlcm1zIG9mIGEgdG9waWMgYXJlIHJhbmtlZCBpbiBkZWNyZWFzaW5nIG9yZGVyIGFjY29yZGluZyB0aGVpciB0b3BpYy1zcGVjaWZpYyBwcm9iYWJpbGl0eSAoICRcbGFtYmRhJCA9IDEgKS4gTW92aW5nIHRoZSBzbGlkZXIgYWxsb3dzIHRvIGFkanVzdCB0aGUgcmFuayBvZiB0ZXJtcyBiYXNlZCBvbiBtdWNoIGRpc2NyaW1pbmF0b3J5IChvciAicmVsZXZhbnQiKSBhcmUgZm9yIHRoZSBzcGVjaWZpYyB0b3BpYy4gVGhlIHN1Z2dlc3RlZCBvcHRpbWFsIHZhbHVlIG9mICRcbGFtYmRhJCBpcyAwLjYuCgoKIyBLbm93bGVkZ2UgQmFzZXM6IENvLUNpdGF0aW9uIG5ldHdvcmsgYW5hbHlzaXMgey50YWJzZXR9CgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KQ19udyA8LSByZWFkUkRTKHBhc3RlMCgnLi4vLi4vdGVtcC9DX253XycsIHN0cl90b19sb3dlcih2YXJfaW5zdCksICdfJywgc3RyX3RvX2xvd2VyKHZhcl9kZXB0KSwgJy5yZHMnKSkKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KY29tX25hbWVzX2NpdCA8LSB0aWJibGUoIAogIGNvbSA9IDE6KENfbncgJT4lIHB1bGwoY29tKSAlPiUgbl9kaXN0aW5jdCgpKSwKICB0eXBlID0gJ0tCJywKICBjb2wgPSBjb20gJT4lIGdnX2NvbG9yX3NlbGVjdChwYWwgPSBwYWxfa2IpLAogIGNvbV9uYW1lID0gCiAgICAjICMgMXN0IGFsdGVybmF0aXZlOiBOdW1iZXIgdGhlbSAxLW4KICAgIHBhc3RlKHR5cGUsIDE6KENfbncgJT4lIHB1bGwoY29tKSAlPiUgbl9kaXN0aW5jdCgpKSkKICAgICMgIyAybmQgYWx0ZXJuYXRpdmU6IExvYWQgZnJvbSBjc3YKICAjIHJlYWRfY3N2KCcuLi8uLi9kYXRhL2NvbW11bml0eV9sYWJlbGluZycpICU+JSBmaWx0ZXIodHlwZSA9ICdrbm93bGVkZ2VfYmFzZScsIGluc3RpdHV0ZSA9IHZhcl9pbnN0LCBkZXBhcnRtZW50ID0gdmFyX2RlcHQpICU+JSBhcnJhbmdlKGNvbSkgJT4lIHB1bGwobGFiZWwpCiAgIyAzcmQgYWx0ZXJuYXRpdmU6IGRlY2xhcmUgaGVyZQogICAgI2MoJzEgVElTICYgTWFya2V0cycsICcyID8gLi4uICcsKQogICkKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KQ19udyAlPD4lIGxlZnRfam9pbihjb21fbmFtZXNfY2l0ICU+JSBzZWxlY3QoY29tLCBjb21fbmFtZSwgY29sKSwgYnkgPSAiY29tIikKYGBgCgoKKipOb3RlOioqIFRoaXMgYW5hbHlzaXMgcmVmZXJzIHRoZSBjby1jaXRhdGlvbiBhbmFseXNpcywgd2hlcmUgdGhlIGNpdGVkIHJlZmVyZW5jZXMgYW5kIG5vdCB0aGUgb3JpZ2luYWwgcHVibGljYXRpb25zIGFyZSB0aGUgdW5pdCBvZiBhbmFseXNpcy4gU2VlIHRhYiBgVGVjaG5pY2FsIGRlc2NyaXB0aW9uYGZvciBhZGRpdGlvbmFsIGV4cGxhbmF0aW9ucwoKIyMgS25vd2xlZGdlIEJhc2VzIHN1bW1hcnkKCkluIG9yZGVyIHRvIHBhcnRpdGlvbiBuZXR3b3JrcyBpbnRvIGNvbXBvbmVudHMgb3IgY2x1c3RlcnMsIHdlIGRlcGxveSBhICoqY29tbXVuaXR5IGRldGVjdGlvbioqIHRlY2huaXF1ZSBiYXNlZCBvbiB0aGUgKipMb3ZhaW4gQWxnb3JpdGhtKiogKEJsb25kZWwgZXQgYWwuLCAyMDA4KS4gVGhlIExvdmFpbiBBbGdvcml0aG0gaXMgYSBoZXVyaXN0aWMgbWV0aG9kIHRoYXQgYXR0ZW1wdHMgdG8gb3B0aW1pemUgdGhlIG1vZHVsYXJpdHkgb2YgY29tbXVuaXRpZXMgd2l0aGluIGEgbmV0d29yayBieSBtYXhpbWl6aW5nIHdpdGhpbi0gYW5kIG1pbmltaXppbmcgYmV0d2Vlbi1jb21tdW5pdHkgY29ubmVjdGl2aXR5LiBXZSBpZGVudGlmeSB0aGUgZm9sbG93aW5nIGNvbW11bml0aWVzID0ga25vd2xlZGdlIGJhc2VzLgoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CmtiX3N0YXRzIDwtIENfbncgJT4lCiAgZ3JvdXBfYnkoY29tX25hbWUpICU+JQogIHN1bW1hcmlzZShuID0gbigpLCBkZW5zaXR5X2ludCA9ICgoc3VtKGRncl9pbnQpIC8gKG4oKSAqIChuKCkgLSAxKSkpICogMTAwKSAlPiUgcm91bmQoMykpICU+JQogIHJlbG9jYXRlKGNvbV9uYW1lLCBldmVyeXRoaW5nKCkpCmBgYAoKYGBge3J9CmtiX3N1bSA8LUNfbncgJT4lIGdyb3VwX2J5KGNvbSkgJT4lIAogIHNlbGVjdChjb20sIG5hbWUsIGRncl9pbnQsIGRncikgJT4lCiAgYXJyYW5nZShjb20sIGRlc2MoZGdyX2ludCkpICU+JQogIG11dGF0ZShuYW1lID0gbmFtZSAlPiUgc3RyX3RydW5jKDE1MCkpICU+JQogIHNsaWNlX21heChvcmRlcl9ieSA9IGRncl9pbnQsIG4gPSAxMCwgd2l0aF90aWVzID0gRkFMU0UpICU+JSAKICBrYWJsZSgpIAoKZm9yKGkgaW4gMTpucm93KGNvbV9uYW1lc19jaXQpKXsKICBrYl9zdW0gPC0ga2Jfc3VtICU+JQogICAgcGFja19yb3dzKHBhc3RlMCgnS25vd2xlZGdlIEJhc2UgJywgaSwgJzogJywgY29tX25hbWVzX2NpdFtpLCAnY29tX25hbWUnXSwKICAgICAgICAgICAgICAgICAgICAgJyAgIChuID0gJywga2Jfc3RhdHNbaSwgJ24nXSwgJywgZGVuc2l0eSA9Jywga2Jfc3RhdHNbaSwgJ2RlbnNpdHlfaW50J10gJT4lIHJvdW5kKDIpLCAnKScgKSwgCiAgICAgICAgICAgICAgKGkqMTAtOSksICAoaSoxMCksIGxhYmVsX3Jvd19jc3MgPSAiYmFja2dyb3VuZC1jb2xvcjogIzY2NjsgY29sb3I6ICNmZmY7IikgCiAgfQoKa2Jfc3VtICU+JQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIiwgImNvbmRlbnNlZCIsICJyZXNwb25zaXZlIiksIGZvbnRfc2l6ZSA9IDEwKQpgYGAKCiMjIERldmVsb3BtZW50IG9mIEtub3dsZWRnZSBCYXNlcwoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CmVsXzJtIDwtIHJlYWRSRFMocGFzdGUwKCcuLi8uLi90ZW1wL2VsXzJtXycsIHN0cl90b19sb3dlcih2YXJfaW5zdCksICdfJywgc3RyX3RvX2xvd2VyKHZhcl9kZXB0KSwgJy5yZHMnKSkgJT4lCiAgZHJvcF9uYSgpCmBgYAoKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQpjaXRfY29tX3llYXIgPC0gZWxfMm0gJT4lCiAgY291bnQoY29tX2NpdCwgUFksIG5hbWUgPSAnVEMnKSAlPiUKICBncm91cF9ieShQWSkgJT4lCiAgbXV0YXRlKFRDX3JlbCA9IFRDIC8gc3VtKFRDKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIGFycmFuZ2UoUFksIGNvbV9jaXQpICU+JQogIGxlZnRfam9pbihjb21fbmFtZXNfY2l0ICwgYnkgPSBjKCdjb21fY2l0JyA9ICdjb20nKSkgJT4lIAogIGNvbXBsZXRlKGNvbV9uYW1lLCBQWSwgZmlsbCA9IGxpc3QoVEMgPSAwLCBUQ19yZWwgPSAwKSkKCmBgYAoKYGBge3IsIGZpZy53aWR0aCA9IDE1LCBmaWcuaGVpZ2h0PTcuNX0KY2l0X2NvbV95ZWFyICU+JQogIHBsb3Rfc3VtbWFyeV90aW1lbGluZSh5MSA9IFRDLCB5MiA9IFRDX3JlbCwgdCA9IFBZLCB0X21pbiA9IFBZX21pbiwgdF9tYXggPSBQWV9tYXgsIGJ5ID0gY29tX25hbWUsIHBhbCA9IHBhbF9rYiwgbGFiZWwgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICB5MV90ZXh0ID0gIk51bWJlciBjaXRhdGlvbnMgcmVjaWV2ZWQgYW5udWFsbHkiLCAgeTJfdGV4dCA9ICJTaGFyZSBvZiBjaXRhdGlvbnMgcmVjaWV2ZWQgYW5udWFsbHkiKSArCiAgcGxvdF9hbm5vdGF0aW9uKHRpdGxlID0gcGFzdGUoJ0tub3dsZWRnZSBCc2VzOicsIHZhcl9pbnN0LCAnRGVwdC4nLCB2YXJfZGVwdCwgc2VwID0gJyAnKSwKICAgICAgICAgICAgICAgICAgc3VidGl0bGUgPSBwYXN0ZSgnVGltZWZyYW1lOicsIFBZX21pbiwgJy0nLCBQWV9tYXggLCBzZXAgPSAnICcpLAogICAgICAgICAgICAgICAgICBjYXB0aW9uID0gJ0Fic29sdXRlIGtub3dsZWRnZSBiYXNlIGFwcGVhcmFuY2UgKGxlZnQpLCBSZWxhdGl2ZSBrbm93bGVkZ2UgYmFzZSBhcHBlYXJhbmNlIChyaWdodCknKQpgYGAKCiMjIFRlY2huaWNhbCBkZXNjcmlwdGlvbgpJbiBhIGNvLWNpdHRpb24gbmV0d29yaywgdGhlIHN0cmVuZ3RoIG9mIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIHJlZmVyZW5jZSBwYWlyICRtJCBhbmQgJG4kICgkc197bSxufV57Y29jfSQpIGlzIGV4cHJlc3NlZCBieSB0aGUgbnVtYmVyIG9mIHB1YmxpY2F0aW9ucyAkQyQgd2hpY2ggYXJlIGpvaW50bHkgY2l0aW5nIHJlZmVyZW5jZSAkbSQgYW5kICRuJC4gCgokJHNfe20sbn1ee2NvY30gPSBcc3VtX2kgY197aSxtfSBjX3tpLG59JCQKClRoZSBpbnR1aXRpb24gaGVyZSBpcyB0aGF0IHJlZmVyZW5jZXMgd2hpY2ggYXJlIGZyZXF1ZW50bHkgY2l0ZWQgdG9nZXRoZXIgYXJlIGxpa2VseSB0byBzaGFyZSBjb21tb25hbGl0aWVzIGluIHRoZW9yeSwgdG9waWMsIG1ldGhvZG9sb2d5LCBvciBjb250ZXh0LiBJdCBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgYSBtZWFzdXJlIG9mIHNpbWlsYXJpdHkgYXMgZXZhbHVhdGVkIGJ5IG90aGVyIHJlc2VhcmNoZXJzIHRoYXQgZGVjaWRlIHRvIGpvaW50bHkgY2l0ZSBib3RoIHJlZmVyZW5jZXMuIEJlY2F1c2UgdGhlIHB1YmxpY2F0aW9uIHByb2Nlc3MgaXMgdGltZS1jb25zdW1pbmcsIGNvLWNpdGF0aW9uIGlzIGEgYmFja3dhcmQtbG9va2luZyBtZWFzdXJlLCB3aGljaCBpcyBhcHByb3ByaWF0ZSB0byBtYXAgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGNvcmUgbGl0ZXJhdHVyZSBvZiBhIGZpZWxkLgoKCjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgo8IS0tICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBORVhUIFBBUlQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgLS0+CjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgo8IS0tICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KCiMgUmVzZWFyY2ggQXJlYXM6IEJpYmxpb2dyYXBoaWMgY291cGxpbmcgYW5hbHlzaXMgey50YWJzZXR9CgojIyBSZXNlYXJjaCBBcmVhcyBtYWluIHN1bW1hcnkKClRoaXMgaXMgYXJndWFibHkgdGhlIG1vcmUgaW50ZXJlc3RpbmcgcGFydC4gSGVyZSwgd2UgaWRlbnRpZnkgdGhlIGxpdGVyYXR1cmUncyBjdXJyZW50IGtub3dsZWRnZSBmcm9udGllciBieSBjYXJyeWluZyBvdXQgYSBiaWJsaW9ncmFwaGljIGNvdXBsaW5nIGFuYWx5c2lzIG9mIHRoZSBwdWJsaWNhdGlvbnMgaW4gb3VyIGNvcnB1cy4gVGhpcyBtZWFzdXJlICB1c2VzIGJpYmxpb2dyYXBoaWNhbCBpbmZvcm1hdGlvbiBvZiAgcHVibGljYXRpb25zIHRvIGVzdGFibGlzaCBhIHNpbWlsYXJpdHkgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlbS4gQWdhaW4sIG1ldGhvZCBkZXRhaWxzIHRvIGJlIGZvdW5kIGluIHRoZSB0YWIgYFRlY2huaWNhbCBkZXNjcmlwdGlvbmAuIEFzIHlvdSB3aWxsIHNlZSwgd2UgaWRlbnRpZnkgdGhlIG1haW4gcmVzZWFyY2ggYXJlYSwgYnV0IGFsc28gYSBzZXQgb2YgYWRqYWNlbnQgcmVzZWFyY2ggYXJlYXMgd2l0aCBzb21lIHRoZW9yZXRpY2FsL21ldGhvZG9sb2dpY2FsL2FwcGxpY2F0aW9uIG92ZXJsYXAuCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KTV9iaWIgPC0gcmVhZFJEUyhwYXN0ZTAoJy4uLy4uL3RlbXAvTV9iaWJfJywgc3RyX3RvX2xvd2VyKHZhcl9pbnN0KSwgJ18nLCBzdHJfdG9fbG93ZXIodmFyX2RlcHQpLCAnLnJkcycpKSAlPiUgYXNfdGliYmxlKCkKYGBgCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KY29tX25hbWVzX2JpYiA8LSB0aWJibGUoIAogIGNvbSA9IDE6KE1fYmliICU+JSBwdWxsKGNvbSkgJT4lIG5fZGlzdGluY3QoKSksCiAgdHlwZSA9ICdSQScsCiAgY29sID0gY29tICU+JSBnZ19jb2xvcl9zZWxlY3QocGFsID0gcGFsX3JhKSwKICBjb21fbmFtZSA9IAogICAgIyAjIDFzdCBhbHRlcm5hdGl2ZTogTnVtYmVyIHRoZW0gMS1uCiAgICBwYXN0ZSh0eXBlLCAxOihNX2JpYiAlPiUgcHVsbChjb20pICU+JSBuX2Rpc3RpbmN0KCkpKQogICAgIyAjIDJuZCBhbHRlcm5hdGl2ZTogTG9hZCBmcm9tIGNzdgogICMgcmVhZF9jc3YoJy4uLy4uL2RhdGEvY29tbXVuaXR5X2xhYmVsaW5nJykgJT4lIGZpbHRlcih0eXBlID0gJ3Jlc2VhcmNoX2FyZWEnLCBpbnN0aXR1dGUgPSB2YXJfaW5zdCwgZGVwYXJ0bWVudCA9IHZhcl9kZXB0KSAlPiUgYXJyYW5nZShjb20pICU+JSBwdWxsKGxhYmVsKQogICMgM3JkIGFsdGVybmF0aXZlOiBkZWNsYXJlIGhlcmUKICAgICNjKCcxIFRJUyAmIE1hcmtldHMnLCAnMiA/IC4uLiAnLCkKICApCmBgYAoKYGBge3IsIGluY2x1ZGU9RkFMU0V9Ck1fYmliICU8PiUgbGVmdF9qb2luKGNvbV9uYW1lc19iaWIgJT4lIHNlbGVjdChjb20sIGNvbV9uYW1lLCBjb2wpLCBieSA9ICJjb20iKQpgYGAKClRvIGlkZW50aWZ5IGNvbW11bml0aWVzIGluIHRoZSBmaWVsZCdzIGtub3dsZWRnZSBmcm9udGllciAobGFiZWxlZCAqKnJlc2VhcmNoIGFyZWFzKiopIHdlIGFnYWluIHVzZSB0aGUgKipMb3ZhaW4gQWxnb3JpdGhtKiogKEJsb25kZWwgZXQgYWwuLCAyMDA4KS4gV2UgaWRlbnRpZnkgdGhlIGZvbGxvd2luZyBjb21tdW5pdGllcyA9IHJlc2VhcmNoIGFyZWFzLgoKYGBge3IsIGluY2x1ZGU9RkFMU0V9CnJhX3N0YXRzIDwtIE1fYmliICU+JQogIGRyb3BfbmEoY29tKSAlPiUKICBncm91cF9ieShjb20sIGNvbV9uYW1lKSAlPiUKICBzdW1tYXJpc2UobiA9IG4oKSwgZGVuc2l0eV9pbnQgPSAoKHN1bShkZ3JfaW50KSAvIChuKCkgKiAobigpIC0gMSkpKSAqIDEwMCkgJT4lIHJvdW5kKDMpKSAlPiUKICBzZWxlY3QoY29tLCBjb21fbmFtZSwgZXZlcnl0aGluZygpKQpgYGAKCmBgYHtyfQpyYV9zdW0gPC0gTV9iaWIgJT4lIGdyb3VwX2J5KGNvbV9uYW1lKSAlPiUgCiAgbGVmdF9qb2luKE0gJT4lIHNlbGVjdChYWCwgQVUsIFBZLCBUSSwgVEMpLCBieSA9ICdYWCcpICU+JQogIG11dGF0ZShkZ3Jfc2VsZWN0ID0gKGRncl9pbnQgLyBtYXgoZGdyX2ludCkgKiAoVEMgLyBtYXgoVEMpKSkgKSAlPiUKICBzbGljZV9tYXgob3JkZXJfYnkgPSBkZ3Jfc2VsZWN0LCBuID0gMTAsIHdpdGhfdGllcyA9IEZBTFNFKSAlPiUgCiAgbXV0YXRlKFRDX3llYXIgPSBUQyAvICgyMDIxICsgMSAtIFBZKSwKICAgICAgICAgQVUgPSBBVSAlPiUgc3RyX3RydW5jKDI1KSwKICAgICAgICAgVEkgPSBUSSAlPiUgc3RyX3RydW5jKDEyNSkpICU+JQogIHNlbGVjdChjb21fbmFtZSwgQVUsIFBZLCBUSSwgZGdyX2ludCwgVEMsIFRDX3llYXIpICU+JQogIGthYmxlKCkKCgpmb3IoaSBpbiAxOm5yb3coY29tX25hbWVzX2JpYikpewogIHJhX3N1bSAgJTw+JQogICAgcGFja19yb3dzKHBhc3RlMCgnUmVzZWFyY2ggQXJlYSAnLCBpLCAnOiAnLCBjb21fbmFtZXNfYmliW2ksICdjb21fbmFtZSddLAogICAgICAgICAgICAgICAgICAgICAnICAgKG4gPSAnLCByYV9zdGF0c1tpLCAnbiddLCAnLCBkZW5zaXR5ID0nLCByYV9zdGF0c1tpLCAnZGVuc2l0eV9pbnQnXSAlPiUgcm91bmQoMiksICcpJyApLCAKICAgICAgICAgICAgICAoaSoxMC05KSwgIChpKjEwKSwgbGFiZWxfcm93X2NzcyA9ICJiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2OyBjb2xvcjogI2ZmZjsiKSAKICB9CgpyYV9zdW0gJT4lIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIiwgImNvbmRlbnNlZCIsICJyZXNwb25zaXZlIiksIGZvbnRfc2l6ZSA9IDEwKQpgYGAKCiMjIERldmVsb3BtZW50CgpgYGB7ciwgZmlnLndpZHRoID0gMTUsIGZpZy5oZWlnaHQ9Ny41fQpNX2JpYiAlPiUKICBsZWZ0X2pvaW4oTSAlPiUgc2VsZWN0KFhYLCBQWSksIGJ5ID0gJ1hYJykgJT4lCiAgbXV0YXRlKFBZID0gUFkgJT4lIGFzLm51bWVyaWMoKSkgJT4lCiAgZ3JvdXBfYnkoY29tX25hbWUsIFBZKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JSB1bmdyb3VwKCkgJT4lCiAgZ3JvdXBfYnkoUFkpICU+JSBtdXRhdGUobl9QWSA9IHN1bShuKSkgJT4lIHVuZ3JvdXAoKSAlPiUKICBtdXRhdGUobl9yZWwgPSBuIC8gbl9QWSkgJT4lCiAgc2VsZWN0KGNvbV9uYW1lLCBQWSwgbiwgbl9yZWwpICU+JQogIGFycmFuZ2UoY29tX25hbWUsIFBZKSAlPiUgCiAgY29tcGxldGUoY29tX25hbWUsIFBZLCBmaWxsID0gbGlzdChuID0gMCwgbl9yZWwgPSAwKSkgJT4lCiAgcGxvdF9zdW1tYXJ5X3RpbWVsaW5lKHkxID0gbiwgeTIgPSBuX3JlbCwgdCA9IFBZLCB0X21pbiA9IFBZX21pbiwgdF9tYXggPSBQWV9tYXgsIGJ5ID0gY29tX25hbWUsIGxhYmVsID0gVFJVRSwgcGFsID0gcGFsX3JhLAogICAgICAgICAgICAgICAgICAgICAgICB5MV90ZXh0ID0gIk51bWJlciBwdWJsaWNhdGlvbnMgYW5udWFsbHkiLCB5Ml90ZXh0ID0gIlNoYXJlIG9mIHB1YmxpY2F0aW9ucyBhbm51YWxseSIpICsKICBwbG90X2Fubm90YXRpb24odGl0bGUgPSBwYXN0ZSgnUmVzZWFyY2ggQXJlYXM6JywgdmFyX2luc3QsICdEZXB0LicsIHZhcl9kZXB0LCBzZXAgPSAnICcpLAogICAgICAgICAgICAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCdUaW1lZnJhbWU6JywgUFlfbWluLCAnLScsIFBZX21heCAsIHNlcCA9ICcgJyksCiAgICAgICAgICAgICAgICAgIGNhcHRpb24gPSAnQWJzb2x1dGUgcmVzZWFyY2ggYXJlYSBhcHBlYXJhbmNlIChsZWZ0KSwgUmVsYXRpdmUgcmVzZWFyY2ggYXJlYSBhcHBlYXJhbmNlIChyaWdodCknKQpgYGAKCiMjIyBDb25uZWN0aXZpdHkgYmV0d2VlbiB0aGUgcmVzZWFyY2ggYXJlYXMKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQpnX2FnZyA8LSByZWFkUkRTKHBhc3RlMCgnLi4vLi4vdGVtcC9nX2JpYl9hZ2dfJywgc3RyX3RvX2xvd2VyKHZhcl9pbnN0KSwgJ18nLCBzdHJfdG9fbG93ZXIodmFyX2RlcHQpLCAnLnJkcycpKSAlTj4lCiAgYXJyYW5nZShjb20pICMgJT4lCiMgICBtdXRhdGUobmFtZSA9IG5hbWVzX3JhICU+JSBwdWxsKGNvbV9yYV9uYW1lKSwKIyAgICAgICAgICBjb2xvciA9IGNvbHNfcmEpCmBgYAoKYGBge3IsIGZpZy5oZWlnaHQ9IDcuNSwgZmlnLndpZHRoPTcuNX0KZ19hZ2cgJUU+JSAKICBmaWx0ZXIod2VpZ2h0ID4gMCAmIGZyb20gIT0gdG8pICU+JQogIGZpbHRlcih3ZWlnaHQgPj0gcXVhbnRpbGUod2VpZ2h0LCAwLjI1KSApICAlTj4lCiAgbXV0YXRlKGNvbSA9IGNvbSAlPiUgZmFjdG9yKCkpICU+JQogIGdncmFwaChsYXlvdXQgPSAiY2lyY2xlIikgKyAKICBnZW9tX2VkZ2VfZmFuKHN0cmVuZ2h0ID0gMC4wNzUsIGFlcyh3aWR0aCA9IHdlaWdodCksIGFscGhhID0gMC4yKSAgKyAKICBnZW9tX25vZGVfcG9pbnQoYWVzKHNpemUgPSBOLCBjb2xvciA9IGNvbSkpICArIAogIGdlb21fbm9kZV90ZXh0KGFlcyhsYWJlbCA9IGNvbSksIHJlcGVsID0gVFJVRSkgKwogIHRoZW1lX2dyYXBoKGJhc2VfZmFtaWx5ID0gIkFyaWFsIikgKwogIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gcGFsX3JhKSArCiAgbGFicyh0aXRsZSA9IHBhc3RlKCdSZXNlYXJjaCBBcmVhIENvbm5lY3Rpdml0eTonLCB2YXJfaW5zdCwgJ0RlcHQuJywgdmFyX2RlcHQsIHNlcCA9ICcgJyksCiAgICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gcGFzdGUoJ1RpbWVmcmFtZTonLCBQWV9taW4sICctJywgUFlfbWF4ICwgc2VwID0gJyAnKSwKICAgICAgICAgICAgICAgICAgY2FwdGlvbiA9ICdOb2RlcyA9IElkZW50aWZpZWQgUmVzZWFyY2ggQXJlYXM7IEVkZ2VzOiBCaWJsaW9ncmFwaGljIGNvdXBsaW5nIHN0cmVuZ2h0IChKQWNjYXJkIHdlaWdodGVkKScpCmBgYAoKIyMgVGVjaG5pY2FsIGRlc2NyaXB0aW9uCkluIGEgYmlibGlvZ3JhcGhpYyBjb3VwbGluZyBuZXR3b3JrLCB0aGUgKipjb3VwbGluZy1zdHJlbmd0aCoqIGJldHdlZW4gcHVibGljYXRpb25zIGlzIGRldGVybWluZWQgYnkgdGhlIG51bWJlciBvZiBjb21tb25seSBjaXRlZCByZWZlcmVuY2VzIHRoZXkgc2hhcmUsIGFzc3VtaW5nIGEgY29tbW9uIHBvb2wgb2YgcmVmZXJlbmNlcyB0byBpbmRpY2F0ZSBzaW1pbGFyaXR5IGluIGNvbnRleHQsIG1ldGhvZHMsIG9yIHRoZW9yeS4gRm9ybWFsbHksIHRoZSBzdHJlbmd0aCBvZiB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYSBwdWJsaWNhdGlvbiBwYWlyICRpJCBhbmQgJGokICgkc197aSxqfV57YmlifSQpIGlzIGV4cHJlc3NlZCBieSB0aGUgbnVtYmVyIG9mIGNvbW1vbmx5IGNpdGVkIHJlZmVyZW5jZXMuIAoKJCRzX3tpLGp9XntiaWJ9ID0gXHN1bV9tIGNfe2ksbX0gY197aixtfSQkCgpTaW5jZSBvdXIgY29ycHVzIGNvbnRhaW5zIHB1YmxpY2F0aW9ucyB3aGljaCBkaWZmZXIgc3Ryb25nbHkgaW4gdGVybXMgb2YgdGhlIG51bWJlciBvZiBjaXRlZCByZWZlcmVuY2VzLCB3ZSBub3JtYWxpemUgdGhlIGNvdXBsaW5nIHN0cmVuZ3RoIGJ5IHRoZSBKYWNjYXJkIHNpbWlsYXJpdHkgY29lZmZpY2llbnQuIEhlcmUsIHdlIHdlaWdodCB0aGUgaW50ZXJjZXB0IG9mIHR3byBwdWJsaWNhdGlvbnMnIGJpYmxpb2dyYXBoeSAoc2hhcmVkIHJlZmVlbmNlcykgYnkgdGhlaXIgdW5pb24gKG51bWJlciBvZiBhbGwgcmVmZXJlbmNlcyBjaXRlZCBieSBlaXRoZXIgJGkkIG9yICRqJCkuIEl0IGlzIGJvdW5kZWQgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHdoZXJlIG9uZSBpbmRpY2F0ZXMgdGhlIHR3byBwdWJsaWNhdGlvbnMgdG8gaGF2ZSBhbiBpZGVudGljYWwgYmlibGlvZ3JhcGh5LCBhbmQgemVybyB0aGF0IHRoZXkgZG8gbm90IHNoYXJlIGFueSBjaXRlZCByZWZlcmVuY2UuIFRoZXJlYnksIHdlIHByZXZlbnQgcHVibGljYXRpb25zIGZyb20gaGF2aW5nIGhpZ2ggY291cGxpbmcgc3RyZW5ndGggZHVlIHRvIGEgbGFyZ2UgYmlibGlvZ3JhcGh5IChlLmcuLCBsaXRlcmF0dXJlIHN1cnZleXMpLgoKJCRTX3tpLGp9XntqYWMtYmlifSA9XGZyYWN7QyhpIFxjYXAgail9e0MoaSBcY3VwIGopfSA9IFxmcmFje3Nfe2ksan1ee2JpYn19e2NfaSArIGNfaiAtIHNfe2ksan1ee2JpYn19JCQKCk1vcmUgcmVjZW50IGFydGljbGVzIGhhdmUgYSBoaWdoZXIgcG9vbCBvZiBwb3NzaWJsZSByZWZlcmVuY2VzIHRvIGNvLWNpdGUgdG8sIGhlbmNlIHRoZXkgYXJlIG1vcmUgbGlrZWx5IHRvIGJlIGNvdXBsZWQuIENvbnNlcXVlbnRseSwgYmlibGlvZ3JhcGhpYyBjb3VwbGluZyByZXByZXNlbnRzIGEgZm9yd2FyZCBsb29raW5nIG1lYXN1cmUsIGFuZCB0aGUgbWV0aG9kIG9mIGNob2ljZSB0byBpZGVudGlmeSB0aGUgY3VycmVudCBrbm93bGVkZ2UgZnJvbnRpZXIgYXQgdGhlIHBvaW50IG9mIGFuYWx5c2lzLgoKPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgLS0+CjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgo8IS0tICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIE5FWFQgUEFSVCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgLS0+CjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgoKIyBLbm93bGVkZ2UgQmFzZXMsIFJlc2VhcmNoIEFyZWFzICYgVG9waWNzIEludGVyYWN0aW9uCgpgYGB7ciwgaW5jbHVkZT1GQUxTRX0KIyBOb2RlcwpubF8zbSA8LSBjb21fbmFtZXNfYmliICU+JQogIGJpbmRfcm93cyhjb21fbmFtZXNfY2l0KSAlPiUKICBiaW5kX3Jvd3MoY29tX25hbWVzX3RvcCkgJT4lCiAgcmVuYW1lKG5hbWUgPSBjb21fbmFtZSwKICAgICAgICAgY29tX25yID0gY29tKSAlPiUKICByZWxvY2F0ZShuYW1lKQoKIyBFZGdlcwplbF8ybV9rYiA8LSBlbF8ybSAlPiUKICBzZWxlY3QoLWZyb20sIC10bykgJT4lCiAgaW5uZXJfam9pbihjb21fbmFtZXNfY2l0ICU+JSBzZWxlY3QoY29tLCBjb21fbmFtZSksIGJ5ID0gYygnY29tX2NpdCcgPSAnY29tJykpICU+JQogIGlubmVyX2pvaW4oY29tX25hbWVzX2JpYiAlPiUgc2VsZWN0KGNvbSwgY29tX25hbWUsIGNvbCksIGJ5ID0gYygnY29tX2JpYicgPSAnY29tJykpICU+JQogIG11dGF0ZSh3ZWlnaHQgPSAxKSAlPiUKICByZW5hbWUoZnJvbSA9IGNvbV9uYW1lLngsCiAgICAgICAgIHRvID0gY29tX25hbWUueSkgJT4lICMgZ2VuZXJpYwogIHNlbGVjdChmcm9tLCB0bywgd2VpZ2h0LCBjb2wpICU+JSAKICBkcm9wX25hKCkgJT4lIAogIGNvdW50KGZyb20sIHRvLCBjb2wsIHd0ID0gd2VpZ2h0LCBuYW1lID0gJ3dlaWdodCcpICU+JQogIGZpbHRlcihwZXJjZW50X3Jhbmsod2VpZ2h0KSA+PSAwLjI1KSAlPiUKICB3ZWlnaHRfamFjY2FyZChpID0gZnJvbSwgaiA9IHRvLCB3ID0gd2VpZ2h0KSAlPiUgCiAgc2VsZWN0KC13ZWlnaHQpCgplbF8ybV90b3BpYyA8LSB0ZXh0X2xkYV9nYW1tYSAlPiUgc2VsZWN0KC10b3BpYywgLWNvbCkgJT4lCiAgbGVmdF9qb2luKE1fYmliICU+JSBzZWxlY3QoWFgsIGNvbSkgJT4lIGRyb3BfbmEoY29tKSwgYnkgPSBjKCdkb2N1bWVudCcgPSAnWFgnKSkgJT4lCiAgaW5uZXJfam9pbihjb21fbmFtZXNfYmliICU+JSBzZWxlY3QoY29tLCBjb21fbmFtZSwgY29sKSwgYnkgPSBjKCdjb20nID0gJ2NvbScpKSAlPiUKICByZW5hbWUoZnJvbSA9IGNvbV9uYW1lLnksCiAgICAgICAgIHRvID0gY29tX25hbWUueCwKICAgICAgICAgd2VpZ2h0ID0gZ2FtbWEpICU+JSAjIGdlbmVyaWMKICBzZWxlY3QoZnJvbSwgdG8sIHdlaWdodCwgY29sKSAlPiUgCiAgZHJvcF9uYSgpICU+JSAKICBjb3VudChmcm9tLCB0bywgY29sLCB3dCA9IHdlaWdodCwgbmFtZSA9ICd3ZWlnaHQnKSAlPiUKICBmaWx0ZXIocGVyY2VudF9yYW5rKHdlaWdodCkgPj0gMC4yNSkgJT4lCiAgd2VpZ2h0X2phY2NhcmQoaSA9IGZyb20sIGogPSB0bywgdyA9IHdlaWdodCkgJT4lIHNlbGVjdCgtd2VpZ2h0KQoKIyBncmFwaApnXzNtIDwtIGVsXzJtX2tiICU+JSAKICBiaW5kX3Jvd3MoZWxfMm1fdG9waWMpICU+JQogIGFzX3RibF9ncmFwaChkaXJlY3RlZCA9IFRSVUUpICVOPiUKICBsZWZ0X2pvaW4obmxfM20sIGJ5ID0gJ25hbWUnKSAlPiUKICBtdXRhdGUoCiAgICBsZXZlbCA9IGNhc2Vfd2hlbigKICAgICAgdHlwZSA9PSAiS0IiIH4gMSwKICAgICAgdHlwZSA9PSAiUkEiIH4gMiwKICAgICAgdHlwZSA9PSAiVFAiIH4gMyksCiAgICBjb29yZF95ID0gMC4xLAogICAgY29vcmRfeCA9IDAuMDAxICsgMS8obWF4KGxldmVsKS0xKSAqIChsZXZlbC0xKQogICAgKSAgJU4+JQogIGZpbHRlcighbm9kZV9pc19pc29sYXRlZCgpLCAhaXMubmEobGV2ZWwpKQpgYGAKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQojIyBCdWlsZCBzYW5rZXkgcGxvdApmaWcgPC0gcGxvdF9seSh0eXBlID0gInNhbmtleSIsIAogICAgICAgICAgICAgICBvcmllbnRhdGlvbiA9ICJoIiwKICAgICAgICAgICAgICAgYXJyYW5nZW1lbnQgPSAic25hcCIsCiAgbm9kZSA9IGxpc3QoCiAgICBsYWJlbCA9IGdfM20gJU4+JSBhc190aWJibGUoKSAlPiUgcHVsbChuYW1lKSwKICAgIHggPSBnXzNtICVOPiUgYXNfdGliYmxlKCkgJT4lIHB1bGwoY29vcmRfeCksCiAgICB5ID0gZ18zbSAlTj4lIGFzX3RpYmJsZSgpICU+JSBwdWxsKGNvb3JkX3kpLAogICAgY29sb3IgPSBnXzNtICVOPiUgYXNfdGliYmxlKCkgJT4lIHB1bGwoY29sKSwgCiAgICBwYWQgPSA0CiAgKSwgCiAgbGluayA9IGxpc3QoCiAgICBzb3VyY2UgPSAoZ18zbSAlRT4lIGFzX3RpYmJsZSgpICU+JSBwdWxsKGZyb20pKSAtMSwKICAgIHRhcmdldCA9IChnXzNtICVFPiUgYXNfdGliYmxlKCkgJT4lIHB1bGwodG8pKSAtMSwKICAgIHZhbHVlID0gIGdfM20gJUU+JSBhc190aWJibGUoKSAlPiUgcHVsbCh3ZWlnaHRfamFjKSwKICAgIGNvbG9yID0gZ18zbSAlRT4lIGFzX3RpYmJsZSgpICU+JSBwdWxsKGNvbCkgJT4lIGNvbDJyZ2IoKSAlPiUgYXMubWF0cml4KCkgJT4lIHQoKSAlPiUgYXNfdGliYmxlKCkgJT4lIAogICAgICBtdXRhdGUoY29sX3JnYiA9IHBhc3RlMCgncmdiYSgnLCByZWQsICcsJyAsIGdyZWVuLCAnLCcsIGJsdWUsICcsMC43NSknKSkgJT4lICBwdWxsKGNvbF9yZ2IpCiAgICApCikgJT4lIAogIGxheW91dCh0aXRsZSA9IHBhc3RlKCdLbm93bGVkZ2UgQmFzZXMsIFJlc2VhcmNoIEFyZWFzICYgVG9waWNzOicsIHZhcl9pbnN0LCAnRGVwdC4nLCB2YXJfZGVwdCwgc2VwID0gJyAnKSwKICAgICAgICAgbWFyZ2luID0gbGlzdChsID0gNTAsIHIgPSA1MCwgYiA9IDEwMCwgdCA9IDEwMCwgcGFkID0gMikpIApgYGAKCmBgYHtyLCBmaWcuaGVpZ2h0PSAxMCwgZmlnLndpZHRoPTEyLjV9CmZpZwpgYGAKCjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgo8IS0tICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBORVhUIFBBUlQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgLS0+CjwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPgo8IS0tICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KCiMgRW5kbm90ZXMKCkFsbCByZXN1bHRzIGFyZSBwcmVsaW1pbmFyeSBzbyBmYXIuLi4KCmBgYHtyfQojIEFmdGVyIGtuaXR0ZWQgZG8gdGhpcwojZmlsZS5yZW5hbWUoZnJvbSA9ICI5Ml9kZXNjcmlwdGl2ZXNfbWFwcGluZy5uYi5odG1sIiwgdG8gPSBwYXN0ZTAoJy4uL291dHB1dC9maWVsZF9tYXBwaW5nL2ZpZWxkX21hcHBpbmdfJywgc3RyX3RvX2xvd2VyKHZhcl9pbnN0KSwgJ18nLCBzdHJfdG9fbG93ZXIodmFyX2RlcHQpLCAnLmh0bWwnKSkKYGBgCgoKCgo=